home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1996-04-01 | 33.8 KB | [TEXT/CWIE] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Mon Apr 1 11:05:29 1996, modified Mon Apr 1 11:05:29 1996, creator 'CWIE', type ASCII, 33577 bytes "CustomAttribute_Lib.c" , at 0x83a9 697 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [CWIE] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 15 43 75 73 74 6f 6d | 41 74 74 72 69 62 75 74 |..Custom|Attribut|
|00000010| 65 5f 4c 69 62 2e 63 00 | 00 00 00 00 00 00 00 00 |e_Lib.c.|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 83 29 00 | 00 02 b9 ad 85 af 49 ad |......).|......I.|
|00000060| 85 af 49 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..I.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 77 30 00 00 |........|....w0..|
|00000080| 2f 2a 0d 20 2a 20 43 75 | 73 74 6f 6d 49 4f 5f 4c |/*. * Cu|stomIO_L|
|00000090| 69 62 2e 63 0d 20 2a 0d | 20 2a 09 44 65 6d 6f 2f |ib.c. *.| *.Demo/|
|000000a0| 54 65 6d 70 6c 61 74 65 | 20 66 6f 72 20 77 72 69 |Template| for wri|
|000000b0| 74 69 6e 67 20 63 75 73 | 74 6f 6d 20 49 4f 20 66 |ting cus|tom IO f|
|000000c0| 75 6e 63 74 69 6f 6e 73 | 0d 20 2a 09 0d 20 2a 09 |unctions|. *.. *.|
|000000d0| 43 75 73 74 6f 6d 20 41 | 74 74 72 69 62 75 74 65 |Custom A|ttribute|
|000000e0| 20 65 78 61 6d 70 6c 65 | 0d 20 2a 2f 0d 23 69 6e | example|. */.#in|
|000000f0| 63 6c 75 64 65 20 3c 51 | 44 33 44 2e 68 3e 0d 23 |clude <Q|D3D.h>.#|
|00000100| 69 6e 63 6c 75 64 65 20 | 3c 51 44 33 44 53 65 74 |include |<QD3DSet|
|00000110| 2e 68 3e 0d 0d 23 69 6e | 63 6c 75 64 65 20 3c 51 |.h>..#in|clude <Q|
|00000120| 44 33 44 49 4f 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |D3DIO.h>|.#includ|
|00000130| 65 20 3c 51 44 33 44 53 | 74 72 69 6e 67 2e 68 3e |e <QD3DS|tring.h>|
|00000140| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 51 44 33 44 47 |.#includ|e <QD3DG|
|00000150| 65 6f 6d 65 74 72 79 2e | 68 3e 0d 23 69 6e 63 6c |eometry.|h>.#incl|
|00000160| 75 64 65 20 3c 51 44 33 | 44 47 72 6f 75 70 2e 68 |ude <QD3|DGroup.h|
|00000170| 3e 0d 0d 23 69 6e 63 6c | 75 64 65 20 3c 73 74 64 |>..#incl|ude <std|
|00000180| 6c 69 62 2e 68 3e 0d 0d | 23 69 6e 63 6c 75 64 65 |lib.h>..|#include|
|00000190| 20 22 43 75 73 74 6f 6d | 41 74 74 72 69 62 75 74 | "Custom|Attribut|
|000001a0| 65 5f 4c 69 62 2e 68 22 | 0d 0d 2f 2a 0d 20 2a 09 |e_Lib.h"|../*. *.|
|000001b0| 54 68 69 73 20 66 69 6c | 65 20 63 6f 6e 74 61 69 |This fil|e contai|
|000001c0| 6e 73 20 74 68 65 20 69 | 6d 70 6c 65 6d 65 6e 74 |ns the i|mplement|
|000001d0| 61 74 69 6f 6e 20 66 6f | 72 20 74 68 65 20 66 6f |ation fo|r the fo|
|000001e0| 6c 6c 6f 77 69 6e 67 20 | 63 75 73 74 6f 6d 20 61 |llowing |custom a|
|000001f0| 74 74 72 69 62 75 74 65 | 73 0d 20 2a 09 0d 20 2a |ttribute|s. *.. *|
|00000200| 09 6e 61 6d 65 20 2d 20 | 63 6f 6e 74 61 69 6e 73 |.name - |contains|
|00000210| 20 61 20 73 74 72 69 6e | 67 20 6f 62 6a 65 63 74 | a strin|g object|
|00000220| 2c 20 63 61 6e 20 62 65 | 20 61 74 74 61 63 68 65 |, can be| attache|
|00000230| 64 20 74 6f 20 61 6e 79 | 20 6f 62 6a 65 63 74 20 |d to any| object |
|00000240| 62 65 6c 6f 77 20 73 68 | 61 70 65 0d 20 2a 09 73 |below sh|ape. *.s|
|00000250| 63 6c 65 20 2d 20 73 63 | 61 6c 65 2c 20 64 65 74 |cle - sc|ale, det|
|00000260| 65 72 6d 69 6e 65 73 20 | 74 68 65 20 72 65 6c 61 |ermines |the rela|
|00000270| 74 69 76 65 20 73 63 61 | 6c 65 20 6f 66 20 61 6e |tive sca|le of an|
|00000280| 20 6f 62 6a 65 63 74 2f | 67 72 6f 75 70 20 77 69 | object/|group wi|
|00000290| 74 68 20 31 20 6d 65 74 | 65 72 0d 20 2a 09 75 70 |th 1 met|er. *.up|
|000002a0| 76 74 20 2d 20 75 70 20 | 76 65 63 74 6f 72 2c 20 |vt - up |vector, |
|000002b0| 64 65 74 65 72 6d 69 6e | 65 73 20 74 68 65 20 76 |determin|es the v|
|000002c0| 65 72 74 69 63 61 6c 20 | 6f 72 69 65 6e 74 61 74 |ertical |orientat|
|000002d0| 69 6f 6e 20 6f 66 20 61 | 6e 20 6f 62 6a 65 63 74 |ion of a|n object|
|000002e0| 2f 67 72 6f 75 70 0d 20 | 2a 09 66 77 76 74 20 2d |/group. |*.fwvt -|
|000002f0| 20 66 6f 72 77 61 72 64 | 20 76 65 63 74 6f 72 2c | forward| vector,|
|00000300| 20 64 65 74 65 72 6d 69 | 6e 65 73 20 74 68 65 20 | determi|nes the |
|00000310| 66 72 6f 6e 74 20 6f 72 | 69 65 6e 74 61 74 69 6f |front or|ientatio|
|00000320| 6e 20 6f 66 20 61 6e 20 | 6f 62 6a 65 63 74 2f 67 |n of an |object/g|
|00000330| 72 6f 75 70 0d 20 2a 09 | 75 72 6c 09 20 2d 20 61 |roup. *.|url. - a|
|00000340| 6c 6c 6f 77 73 20 79 6f | 75 20 74 6f 20 61 74 74 |llows yo|u to att|
|00000350| 61 63 68 20 61 6e 20 55 | 52 4c 20 74 6f 20 61 6e |ach an U|RL to an|
|00000360| 20 6f 62 6a 65 63 74 2f | 67 72 6f 75 70 0d 20 2a | object/|group. *|
|00000370| 2f 0d 0d 2f 2a 0d 20 2a | 20 47 6c 6f 62 61 6c 73 |/../*. *| Globals|
|00000380| 0d 20 2a 2f 0d 73 74 61 | 74 69 63 20 54 51 33 4f |. */.sta|tic TQ3O|
|00000390| 62 6a 65 63 74 43 6c 61 | 73 73 09 67 4e 61 6d 65 |bjectCla|ss.gName|
|000003a0| 41 74 74 72 69 62 75 74 | 65 43 6c 61 73 73 20 3d |Attribut|eClass =|
|000003b0| 20 4e 55 4c 4c 2c 0d 09 | 09 09 09 09 09 67 53 63 | NULL,..|.....gSc|
|000003c0| 61 6c 65 41 74 74 72 69 | 62 75 74 65 43 6c 61 73 |aleAttri|buteClas|
|000003d0| 73 20 3d 20 4e 55 4c 4c | 2c 0d 09 09 09 09 09 09 |s = NULL|,.......|
|000003e0| 67 55 70 56 65 63 74 6f | 72 41 74 74 72 69 62 75 |gUpVecto|rAttribu|
|000003f0| 74 65 43 6c 61 73 73 20 | 3d 20 4e 55 4c 4c 2c 0d |teClass |= NULL,.|
|00000400| 09 09 09 09 09 09 67 46 | 6f 72 77 61 72 64 56 65 |......gF|orwardVe|
|00000410| 63 74 6f 72 41 74 74 72 | 69 62 75 74 65 43 6c 61 |ctorAttr|ibuteCla|
|00000420| 73 73 20 3d 20 4e 55 4c | 4c 2c 0d 09 09 09 09 09 |ss = NUL|L,......|
|00000430| 09 67 57 33 41 6e 63 68 | 6f 72 43 6c 61 73 73 20 |.gW3Anch|orClass |
|00000440| 3d 20 4e 55 4c 4c 2c 0d | 09 09 09 09 09 09 67 57 |= NULL,.|......gW|
|00000450| 33 49 6e 6c 69 6e 65 43 | 6c 61 73 73 20 3d 20 4e |3InlineC|lass = N|
|00000460| 55 4c 4c 2c 0d 09 09 09 | 09 09 09 67 57 57 57 41 |ULL,....|...gWWWA|
|00000470| 6e 63 68 6f 72 43 6c 61 | 73 73 20 3d 20 4e 55 4c |nchorCla|ss = NUL|
|00000480| 4c 3b 0d 0d 0d 2f 2a 0d | 20 2a 09 54 68 65 73 65 |L;.../*.| *.These|
|00000490| 20 61 72 65 20 74 68 65 | 20 72 65 67 69 73 74 72 | are the| registr|
|000004a0| 61 74 69 6f 6e 20 63 61 | 6c 6c 73 20 66 6f 72 20 |ation ca|lls for |
|000004b0| 74 68 65 20 69 6e 64 69 | 76 69 64 75 61 6c 20 61 |the indi|vidual a|
|000004c0| 74 74 72 69 62 75 74 65 | 73 0d 20 2a 2f 0d 54 51 |ttribute|s. */.TQ|
|000004d0| 33 53 74 61 74 75 73 20 | 4e 61 6d 65 41 74 74 72 |3Status |NameAttr|
|000004e0| 69 62 75 74 65 5f 52 65 | 67 69 73 74 65 72 28 20 |ibute_Re|gister( |
|000004f0| 76 6f 69 64 29 3b 0d 0d | 54 51 33 53 74 61 74 75 |void);..|TQ3Statu|
|00000500| 73 20 4e 61 6d 65 41 74 | 74 72 69 62 75 74 65 5f |s NameAt|tribute_|
|00000510| 55 6e 72 65 67 69 73 74 | 65 72 28 20 76 6f 69 64 |Unregist|er( void|
|00000520| 29 3b 0d 0d 54 51 33 53 | 74 61 74 75 73 20 53 63 |);..TQ3S|tatus Sc|
|00000530| 61 6c 65 41 74 74 72 69 | 62 75 74 65 5f 52 65 67 |aleAttri|bute_Reg|
|00000540| 69 73 74 65 72 28 20 76 | 6f 69 64 29 3b 0d 09 0d |ister( v|oid);...|
|00000550| 54 51 33 53 74 61 74 75 | 73 20 53 63 61 6c 65 41 |TQ3Statu|s ScaleA|
|00000560| 74 74 72 69 62 75 74 65 | 5f 55 6e 72 65 67 69 73 |ttribute|_Unregis|
|00000570| 74 65 72 28 20 76 6f 69 | 64 29 3b 0d 0d 54 51 33 |ter( voi|d);..TQ3|
|00000580| 53 74 61 74 75 73 20 55 | 70 56 65 63 74 6f 72 41 |Status U|pVectorA|
|00000590| 74 74 72 69 62 75 74 65 | 5f 52 65 67 69 73 74 65 |ttribute|_Registe|
|000005a0| 72 28 20 76 6f 69 64 29 | 3b 0d 0d 54 51 33 53 74 |r( void)|;..TQ3St|
|000005b0| 61 74 75 73 20 55 70 56 | 65 63 74 6f 72 41 74 74 |atus UpV|ectorAtt|
|000005c0| 72 69 62 75 74 65 5f 55 | 6e 72 65 67 69 73 74 65 |ribute_U|nregiste|
|000005d0| 72 28 20 76 6f 69 64 29 | 3b 0d 0d 54 51 33 53 74 |r( void)|;..TQ3St|
|000005e0| 61 74 75 73 20 46 6f 72 | 77 61 72 64 44 69 72 65 |atus For|wardDire|
|000005f0| 63 74 69 6f 6e 41 74 74 | 72 69 62 75 74 65 5f 52 |ctionAtt|ribute_R|
|00000600| 65 67 69 73 74 65 72 28 | 20 76 6f 69 64 29 3b 0d |egister(| void);.|
|00000610| 0d 54 51 33 53 74 61 74 | 75 73 20 46 6f 72 77 61 |.TQ3Stat|us Forwa|
|00000620| 72 64 44 69 72 65 63 74 | 69 6f 6e 41 74 74 72 69 |rdDirect|ionAttri|
|00000630| 62 75 74 65 5f 55 6e 72 | 65 67 69 73 74 65 72 28 |bute_Unr|egister(|
|00000640| 20 76 6f 69 64 29 3b 0d | 0d 54 51 33 53 74 61 74 | void);.|.TQ3Stat|
|00000650| 75 73 20 57 33 41 6e 63 | 68 6f 72 5f 52 65 67 69 |us W3Anc|hor_Regi|
|00000660| 73 74 65 72 28 20 76 6f | 69 64 29 3b 0d 0d 54 51 |ster( vo|id);..TQ|
|00000670| 33 53 74 61 74 75 73 20 | 57 33 41 6e 63 68 6f 72 |3Status |W3Anchor|
|00000680| 5f 55 6e 52 65 67 69 73 | 74 65 72 28 20 76 6f 69 |_UnRegis|ter( voi|
|00000690| 64 29 3b 0d 0d 54 51 33 | 53 74 61 74 75 73 20 57 |d);..TQ3|Status W|
|000006a0| 33 41 6e 63 68 6f 72 5f | 55 6e 72 65 67 69 73 74 |3Anchor_|Unregist|
|000006b0| 65 72 28 20 76 6f 69 64 | 29 3b 0d 0d 54 51 33 53 |er( void|);..TQ3S|
|000006c0| 74 61 74 75 73 20 57 33 | 49 6e 6c 69 6e 65 5f 52 |tatus W3|Inline_R|
|000006d0| 65 67 69 73 74 65 72 28 | 20 76 6f 69 64 29 3b 0d |egister(| void);.|
|000006e0| 0d 54 51 33 53 74 61 74 | 75 73 20 57 33 49 6e 6c |.TQ3Stat|us W3Inl|
|000006f0| 69 6e 65 5f 55 6e 72 65 | 67 69 73 74 65 72 28 20 |ine_Unre|gister( |
|00000700| 76 6f 69 64 29 3b 0d 0d | 54 51 33 53 74 61 74 75 |void);..|TQ3Statu|
|00000710| 73 20 57 57 57 41 6e 63 | 68 6f 72 5f 52 65 67 69 |s WWWAnc|hor_Regi|
|00000720| 73 74 65 72 28 20 76 6f | 69 64 20 29 3b 0d 0d 54 |ster( vo|id );..T|
|00000730| 51 33 53 74 61 74 75 73 | 20 57 57 57 41 6e 63 68 |Q3Status| WWWAnch|
|00000740| 6f 72 5f 55 6e 72 65 67 | 69 73 74 65 72 28 20 76 |or_Unreg|ister( v|
|00000750| 6f 69 64 29 3b 0d 0d 2f | 2a 2a 2a 2a 2a 2a 2a 2a |oid);../|********|
|00000760| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000770| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000780| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000790| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007b0| 2a 2a 2a 2a 2a 2a 0d 20 | 2a 0d 20 2a 09 09 09 09 |******. |*. *....|
|000007c0| 09 09 50 55 42 4c 49 43 | 20 52 4f 55 54 49 4e 45 |..PUBLIC| ROUTINE|
|000007d0| 53 20 46 4f 52 20 52 45 | 47 49 53 54 52 41 54 49 |S FOR RE|GISTRATI|
|000007e0| 4f 4e 20 41 4e 44 20 55 | 4e 52 45 47 49 53 54 52 |ON AND U|NREGISTR|
|000007f0| 41 54 49 4f 4e 0d 20 2a | 0d 20 2a 2a 2a 2a 2a 2a |ATION. *|. ******|
|00000800| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000810| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000820| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000830| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000840| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000850| 2a 2a 2a 2a 2a 2a 2a 2a | 2f 0d 0d 76 6f 69 64 20 |********|/..void |
|00000860| 52 65 67 69 73 74 65 72 | 41 6c 6c 43 75 73 74 6f |Register|AllCusto|
|00000870| 6d 41 74 74 72 69 62 75 | 74 65 73 28 76 6f 69 64 |mAttribu|tes(void|
|00000880| 29 0d 7b 0d 09 4e 61 6d | 65 41 74 74 72 69 62 75 |).{..Nam|eAttribu|
|00000890| 74 65 5f 52 65 67 69 73 | 74 65 72 28 29 3b 0d 0d |te_Regis|ter();..|
|000008a0| 09 53 63 61 6c 65 41 74 | 74 72 69 62 75 74 65 5f |.ScaleAt|tribute_|
|000008b0| 52 65 67 69 73 74 65 72 | 28 29 3b 0d 09 0d 09 55 |Register|();....U|
|000008c0| 70 56 65 63 74 6f 72 41 | 74 74 72 69 62 75 74 65 |pVectorA|ttribute|
|000008d0| 5f 52 65 67 69 73 74 65 | 72 28 29 3b 0d 0d 09 46 |_Registe|r();...F|
|000008e0| 6f 72 77 61 72 64 44 69 | 72 65 63 74 69 6f 6e 41 |orwardDi|rectionA|
|000008f0| 74 74 72 69 62 75 74 65 | 5f 52 65 67 69 73 74 65 |ttribute|_Registe|
|00000900| 72 28 29 3b 0d 0d 09 57 | 33 41 6e 63 68 6f 72 5f |r();...W|3Anchor_|
|00000910| 52 65 67 69 73 74 65 72 | 28 29 3b 0d 0d 09 57 33 |Register|();...W3|
|00000920| 49 6e 6c 69 6e 65 5f 52 | 65 67 69 73 74 65 72 28 |Inline_R|egister(|
|00000930| 29 3b 0d 0d 09 57 57 57 | 41 6e 63 68 6f 72 5f 52 |);...WWW|Anchor_R|
|00000940| 65 67 69 73 74 65 72 28 | 29 3b 0d 7d 0d 0d 0d 76 |egister(|);.}...v|
|00000950| 6f 69 64 20 55 6e 72 65 | 67 69 73 74 65 72 41 6c |oid Unre|gisterAl|
|00000960| 6c 43 75 73 74 6f 6d 41 | 74 74 72 69 62 75 74 65 |lCustomA|ttribute|
|00000970| 73 28 76 6f 69 64 29 0d | 7b 0d 09 4e 61 6d 65 41 |s(void).|{..NameA|
|00000980| 74 74 72 69 62 75 74 65 | 5f 55 6e 72 65 67 69 73 |ttribute|_Unregis|
|00000990| 74 65 72 28 29 3b 0d 0d | 09 53 63 61 6c 65 41 74 |ter();..|.ScaleAt|
|000009a0| 74 72 69 62 75 74 65 5f | 55 6e 72 65 67 69 73 74 |tribute_|Unregist|
|000009b0| 65 72 28 29 3b 0d 09 0d | 09 55 70 56 65 63 74 6f |er();...|.UpVecto|
|000009c0| 72 41 74 74 72 69 62 75 | 74 65 5f 55 6e 72 65 67 |rAttribu|te_Unreg|
|000009d0| 69 73 74 65 72 28 29 3b | 0d 0d 09 46 6f 72 77 61 |ister();|...Forwa|
|000009e0| 72 64 44 69 72 65 63 74 | 69 6f 6e 41 74 74 72 69 |rdDirect|ionAttri|
|000009f0| 62 75 74 65 5f 55 6e 72 | 65 67 69 73 74 65 72 28 |bute_Unr|egister(|
|00000a00| 29 3b 0d 0d 09 57 33 41 | 6e 63 68 6f 72 5f 55 6e |);...W3A|nchor_Un|
|00000a10| 72 65 67 69 73 74 65 72 | 28 29 3b 0d 0d 09 57 33 |register|();...W3|
|00000a20| 49 6e 6c 69 6e 65 5f 55 | 6e 72 65 67 69 73 74 65 |Inline_U|nregiste|
|00000a30| 72 28 29 3b 0d 0d 09 57 | 57 57 41 6e 63 68 6f 72 |r();...W|WWAnchor|
|00000a40| 5f 55 6e 72 65 67 69 73 | 74 65 72 28 29 3b 0d 7d |_Unregis|ter();.}|
|00000a50| 0d 0d 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |../*****|********|
|00000a60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000aa0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000ab0| 2a 0d 20 2a 0d 20 2a 09 | 09 09 09 09 09 09 09 09 |*. *. *.|........|
|00000ac0| 09 4e 41 4d 45 20 63 75 | 73 74 6f 6d 20 61 74 74 |.NAME cu|stom att|
|00000ad0| 72 69 62 75 74 65 0d 20 | 2a 0d 20 2a 2a 2a 2a 2a |ribute. |*. *****|
|00000ae0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000af0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2f 0d 0d 0d 2f 2a 0d |********|*/.../*.|
|00000b40| 20 2a 20 55 74 69 6c 69 | 74 79 20 66 75 6e 63 74 | * Utili|ty funct|
|00000b50| 69 6f 6e 20 74 6f 20 61 | 64 64 20 61 20 6e 61 6d |ion to a|dd a nam|
|00000b60| 65 20 6f 6e 20 61 6e 20 | 73 68 61 70 65 20 6f 62 |e on an |shape ob|
|00000b70| 6a 65 63 74 2c 20 67 65 | 6f 6d 65 74 72 79 20 6f |ject, ge|ometry o|
|00000b80| 62 6a 65 63 74 2c 20 6f | 72 20 61 74 74 72 69 62 |bject, o|r attrib|
|00000b90| 75 74 65 20 73 65 74 0d | 20 2a 2f 0d 0d 54 51 33 |ute set.| */..TQ3|
|00000ba0| 53 74 61 74 75 73 09 53 | 65 74 4e 61 6d 65 28 54 |Status.S|etName(T|
|00000bb0| 51 33 4f 62 6a 65 63 74 | 20 6f 62 6a 65 63 74 2c |Q3Object| object,|
|00000bc0| 20 63 68 61 72 09 2a 6e | 61 6d 65 29 0d 7b 0d 09 | char.*n|ame).{..|
|00000bd0| 54 51 33 53 74 72 69 6e | 67 4f 62 6a 65 63 74 09 |TQ3Strin|gObject.|
|00000be0| 73 74 72 69 6e 67 20 3d | 20 4e 55 4c 4c 3b 0d 09 |string =| NULL;..|
|00000bf0| 54 51 33 41 74 74 72 69 | 62 75 74 65 53 65 74 09 |TQ3Attri|buteSet.|
|00000c00| 73 65 74 20 3d 20 4e 55 | 4c 4c 3b 0d 09 54 51 33 |set = NU|LL;..TQ3|
|00000c10| 53 74 61 74 75 73 09 09 | 73 74 61 74 75 73 20 3d |Status..|status =|
|00000c20| 20 6b 51 33 53 75 63 63 | 65 73 73 3b 0d 09 0d 09 | kQ3Succ|ess;....|
|00000c30| 69 66 28 20 51 33 4f 62 | 6a 65 63 74 5f 49 73 54 |if( Q3Ob|ject_IsT|
|00000c40| 79 70 65 28 6f 62 6a 65 | 63 74 2c 20 6b 51 33 53 |ype(obje|ct, kQ3S|
|00000c50| 68 61 72 65 64 54 79 70 | 65 53 68 61 70 65 29 20 |haredTyp|eShape) |
|00000c60| 3d 3d 20 6b 51 33 54 72 | 75 65 20 29 20 7b 0d 09 |== kQ3Tr|ue ) {..|
|00000c70| 09 0d 09 09 73 74 72 69 | 6e 67 20 3d 20 51 33 43 |....stri|ng = Q3C|
|00000c80| 53 74 72 69 6e 67 5f 4e | 65 77 28 6e 61 6d 65 29 |String_N|ew(name)|
|00000c90| 3b 0d 09 09 0d 09 09 69 | 66 28 20 73 74 72 69 6e |;......i|f( strin|
|00000ca0| 67 20 3d 3d 20 4e 55 4c | 4c 29 20 7b 0d 09 09 09 |g == NUL|L) {....|
|00000cb0| 73 74 61 74 75 73 20 3d | 20 6b 51 33 46 61 69 6c |status =| kQ3Fail|
|00000cc0| 75 72 65 3b 0d 09 09 09 | 67 6f 74 6f 20 63 6c 65 |ure;....|goto cle|
|00000cd0| 61 6e 45 78 69 74 3b 0d | 09 09 7d 0d 09 09 09 0d |anExit;.|..}.....|
|00000ce0| 09 09 69 66 28 20 51 33 | 4f 62 6a 65 63 74 5f 49 |..if( Q3|Object_I|
|00000cf0| 73 54 79 70 65 28 6f 62 | 6a 65 63 74 2c 20 6b 51 |sType(ob|ject, kQ|
|00000d00| 33 53 68 61 70 65 54 79 | 70 65 47 65 6f 6d 65 74 |3ShapeTy|peGeomet|
|00000d10| 72 79 29 20 3d 3d 20 6b | 51 33 54 72 75 65 20 29 |ry) == k|Q3True )|
|00000d20| 20 7b 0d 09 09 09 0d 09 | 09 09 51 33 47 65 6f 6d | {......|..Q3Geom|
|00000d30| 65 74 72 79 5f 47 65 74 | 41 74 74 72 69 62 75 74 |etry_Get|Attribut|
|00000d40| 65 53 65 74 28 6f 62 6a | 65 63 74 2c 20 26 73 65 |eSet(obj|ect, &se|
|00000d50| 74 29 3b 0d 09 09 09 0d | 09 09 09 69 66 28 20 73 |t);.....|...if( s|
|00000d60| 65 74 20 3d 3d 20 4e 55 | 4c 4c 20 29 20 7b 0d 09 |et == NU|LL ) {..|
|00000d70| 09 09 09 73 65 74 20 3d | 20 51 33 41 74 74 72 69 |...set =| Q3Attri|
|00000d80| 62 75 74 65 53 65 74 5f | 4e 65 77 28 29 3b 0d 09 |buteSet_|New();..|
|00000d90| 09 09 09 69 66 28 20 73 | 65 74 20 3d 3d 20 4e 55 |...if( s|et == NU|
|00000da0| 4c 4c 20 29 20 7b 0d 09 | 09 09 09 09 73 74 61 74 |LL ) {..|....stat|
|00000db0| 75 73 20 3d 20 6b 51 33 | 46 61 69 6c 75 72 65 3b |us = kQ3|Failure;|
|00000dc0| 0d 09 09 09 09 09 67 6f | 74 6f 20 63 6c 65 61 6e |......go|to clean|
|00000dd0| 45 78 69 74 3b 0d 09 09 | 09 09 7d 0d 09 09 09 09 |Exit;...|..}.....|
|00000de0| 51 33 47 65 6f 6d 65 74 | 72 79 5f 53 65 74 41 74 |Q3Geomet|ry_SetAt|
|00000df0| 74 72 69 62 75 74 65 53 | 65 74 28 6f 62 6a 65 63 |tributeS|et(objec|
|00000e00| 74 2c 20 73 65 74 29 3b | 0d 09 09 09 7d 0d 09 09 |t, set);|....}...|
|00000e10| 7d 20 65 6c 73 65 20 7b | 0d 09 09 09 51 33 53 68 |} else {|....Q3Sh|
|00000e20| 61 70 65 5f 47 65 74 53 | 65 74 28 6f 62 6a 65 63 |ape_GetS|et(objec|
|00000e30| 74 2c 20 26 73 65 74 29 | 3b 0d 09 09 09 0d 09 09 |t, &set)|;.......|
|00000e40| 09 69 66 28 20 73 65 74 | 20 3d 3d 20 4e 55 4c 4c |.if( set| == NULL|
|00000e50| 20 29 20 7b 0d 09 09 09 | 09 73 65 74 20 3d 20 51 | ) {....|.set = Q|
|00000e60| 33 53 65 74 5f 4e 65 77 | 28 29 3b 0d 09 09 09 09 |3Set_New|();.....|
|00000e70| 69 66 28 20 73 65 74 20 | 3d 3d 20 4e 55 4c 4c 20 |if( set |== NULL |
|00000e80| 29 20 7b 0d 09 09 09 09 | 09 73 74 61 74 75 73 20 |) {.....|.status |
|00000e90| 3d 20 6b 51 33 46 61 69 | 6c 75 72 65 3b 0d 09 09 |= kQ3Fai|lure;...|
|00000ea0| 09 09 09 67 6f 74 6f 20 | 63 6c 65 61 6e 45 78 69 |...goto |cleanExi|
|00000eb0| 74 3b 0d 09 09 09 09 7d | 0d 09 09 09 09 51 33 53 |t;.....}|.....Q3S|
|00000ec0| 68 61 70 65 5f 53 65 74 | 53 65 74 28 6f 62 6a 65 |hape_Set|Set(obje|
|00000ed0| 63 74 2c 20 73 65 74 29 | 3b 0d 09 09 09 7d 0d 09 |ct, set)|;....}..|
|00000ee0| 09 7d 0d 09 09 09 0d 09 | 09 69 66 28 20 51 33 53 |.}......|.if( Q3S|
|00000ef0| 65 74 5f 41 64 64 28 73 | 65 74 2c 20 6b 45 6c 65 |et_Add(s|et, kEle|
|00000f00| 6d 65 6e 74 54 79 70 65 | 4e 61 6d 65 2c 20 26 73 |mentType|Name, &s|
|00000f10| 74 72 69 6e 67 29 20 3d | 3d 20 6b 51 33 46 61 69 |tring) =|= kQ3Fai|
|00000f20| 6c 75 72 65 20 29 20 7b | 0d 09 09 09 73 74 61 74 |lure ) {|....stat|
|00000f30| 75 73 20 3d 20 6b 51 33 | 46 61 69 6c 75 72 65 3b |us = kQ3|Failure;|
|00000f40| 0d 09 09 09 67 6f 74 6f | 20 63 6c 65 61 6e 45 78 |....goto| cleanEx|
|00000f50| 69 74 3b 0d 09 09 7d 0d | 09 7d 20 65 6c 73 65 20 |it;...}.|.} else |
|00000f60| 69 66 28 20 51 33 4f 62 | 6a 65 63 74 5f 49 73 54 |if( Q3Ob|ject_IsT|
|00000f70| 79 70 65 28 6f 62 6a 65 | 63 74 2c 20 6b 51 33 53 |ype(obje|ct, kQ3S|
|00000f80| 68 61 72 65 64 54 79 70 | 65 53 65 74 29 20 3d 3d |haredTyp|eSet) ==|
|00000f90| 20 6b 51 33 54 72 75 65 | 20 29 20 7b 0d 09 09 73 | kQ3True| ) {...s|
|00000fa0| 74 72 69 6e 67 20 3d 20 | 51 33 43 53 74 72 69 6e |tring = |Q3CStrin|
|00000fb0| 67 5f 4e 65 77 28 6e 61 | 6d 65 29 3b 0d 09 09 0d |g_New(na|me);....|
|00000fc0| 09 09 69 66 28 20 73 74 | 72 69 6e 67 20 3d 3d 20 |..if( st|ring == |
|00000fd0| 4e 55 4c 4c 29 20 7b 0d | 09 09 09 73 74 61 74 75 |NULL) {.|...statu|
|00000fe0| 73 20 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 3b 0d |s = kQ3F|ailure;.|
|00000ff0| 09 09 09 67 6f 74 6f 20 | 63 6c 65 61 6e 45 78 69 |...goto |cleanExi|
|00001000| 74 3b 0d 09 09 7d 0d 09 | 09 0d 09 09 69 66 28 20 |t;...}..|....if( |
|00001010| 51 33 41 74 74 72 69 62 | 75 74 65 53 65 74 5f 41 |Q3Attrib|uteSet_A|
|00001020| 64 64 28 6f 62 6a 65 63 | 74 2c 20 6b 45 6c 65 6d |dd(objec|t, kElem|
|00001030| 65 6e 74 54 79 70 65 4e | 61 6d 65 2c 20 26 73 74 |entTypeN|ame, &st|
|00001040| 72 69 6e 67 29 20 3d 3d | 20 6b 51 33 46 61 69 6c |ring) ==| kQ3Fail|
|00001050| 75 72 65 20 29 20 7b 0d | 09 09 09 73 74 61 74 75 |ure ) {.|...statu|
|00001060| 73 20 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 3b 0d |s = kQ3F|ailure;.|
|00001070| 09 09 09 67 6f 74 6f 20 | 63 6c 65 61 6e 45 78 69 |...goto |cleanExi|
|00001080| 74 3b 0d 09 09 7d 0d 09 | 7d 20 65 6c 73 65 20 0d |t;...}..|} else .|
|00001090| 09 09 73 74 61 74 75 73 | 20 3d 20 6b 51 33 46 61 |..status| = kQ3Fa|
|000010a0| 69 6c 75 72 65 3b 0d 09 | 09 0d 63 6c 65 61 6e 45 |ilure;..|..cleanE|
|000010b0| 78 69 74 3a 0d 09 69 66 | 28 20 73 74 72 69 6e 67 |xit:..if|( string|
|000010c0| 20 29 0d 09 09 51 33 4f | 62 6a 65 63 74 5f 44 69 | )...Q3O|bject_Di|
|000010d0| 73 70 6f 73 65 28 73 74 | 72 69 6e 67 29 3b 0d 09 |spose(st|ring);..|
|000010e0| 69 66 28 20 73 65 74 20 | 29 0d 09 09 51 33 4f 62 |if( set |)...Q3Ob|
|000010f0| 6a 65 63 74 5f 44 69 73 | 70 6f 73 65 28 73 65 74 |ject_Dis|pose(set|
|00001100| 29 3b 0d 09 72 65 74 75 | 72 6e 20 73 74 61 74 75 |);..retu|rn statu|
|00001110| 73 3b 0d 7d 0d 0d 2f 2a | 0d 20 2a 20 53 74 61 74 |s;.}../*|. * Stat|
|00001120| 69 63 20 46 75 6e 63 74 | 69 6f 6e 73 0d 20 2a 2f |ic Funct|ions. */|
|00001130| 0d 0d 73 74 61 74 69 63 | 20 54 51 33 53 74 61 74 |..static| TQ3Stat|
|00001140| 75 73 20 4e 61 6d 65 41 | 74 74 72 69 62 75 74 65 |us NameA|ttribute|
|00001150| 5f 54 72 61 76 65 72 73 | 65 28 0d 09 54 51 33 4f |_Travers|e(..TQ3O|
|00001160| 62 6a 65 63 74 09 09 09 | 09 75 6e 75 73 65 64 2c |bject...|.unused,|
|00001170| 0d 09 54 51 33 53 74 72 | 69 6e 67 4f 62 6a 65 63 |..TQ3Str|ingObjec|
|00001180| 74 09 09 09 2a 73 74 72 | 69 6e 67 4f 62 6a 65 63 |t...*str|ingObjec|
|00001190| 74 2c 0d 09 54 51 33 56 | 69 65 77 4f 62 6a 65 63 |t,..TQ3V|iewObjec|
|000011a0| 74 09 09 09 76 69 65 77 | 29 0d 7b 0d 09 28 76 6f |t...view|).{..(vo|
|000011b0| 69 64 29 20 75 6e 75 73 | 65 64 3b 0d 09 0d 09 69 |id) unus|ed;....i|
|000011c0| 66 20 28 73 74 72 69 6e | 67 4f 62 6a 65 63 74 20 |f (strin|gObject |
|000011d0| 3d 3d 20 4e 55 4c 4c 20 | 7c 7c 20 2a 73 74 72 69 |== NULL ||| *stri|
|000011e0| 6e 67 4f 62 6a 65 63 74 | 20 3d 3d 20 4e 55 4c 4c |ngObject| == NULL|
|000011f0| 29 0d 09 09 72 65 74 75 | 72 6e 20 6b 51 33 53 75 |)...retu|rn kQ3Su|
|00001200| 63 63 65 73 73 3b 0d 0d | 09 51 33 56 69 65 77 5f |ccess;..|.Q3View_|
|00001210| 53 75 62 6d 69 74 57 72 | 69 74 65 44 61 74 61 28 |SubmitWr|iteData(|
|00001220| 76 69 65 77 2c 30 2c 30 | 2c 30 29 3b 0d 0d 09 69 |view,0,0|,0);...i|
|00001230| 66 20 28 51 33 4f 62 6a | 65 63 74 5f 53 75 62 6d |f (Q3Obj|ect_Subm|
|00001240| 69 74 28 20 2a 73 74 72 | 69 6e 67 4f 62 6a 65 63 |it( *str|ingObjec|
|00001250| 74 2c 20 76 69 65 77 29 | 20 3d 3d 20 6b 51 33 46 |t, view)| == kQ3F|
|00001260| 61 69 6c 75 72 65 29 0d | 09 09 72 65 74 75 72 6e |ailure).|..return|
|00001270| 20 6b 51 33 46 61 69 6c | 75 72 65 3b 0d 0d 09 72 | kQ3Fail|ure;...r|
|00001280| 65 74 75 72 6e 20 6b 51 | 33 53 75 63 63 65 73 73 |eturn kQ|3Success|
|00001290| 3b 0d 7d 0d 0d 73 74 61 | 74 69 63 20 54 51 33 53 |;.}..sta|tic TQ3S|
|000012a0| 74 61 74 75 73 20 4e 61 | 6d 65 41 74 74 72 69 62 |tatus Na|meAttrib|
|000012b0| 75 74 65 5f 52 65 61 64 | 44 61 74 61 28 0d 09 54 |ute_Read|Data(..T|
|000012c0| 51 33 53 65 74 4f 62 6a | 65 63 74 09 09 09 61 74 |Q3SetObj|ect...at|
|000012d0| 74 72 69 62 75 74 65 53 | 65 74 2c 0d 09 54 51 33 |tributeS|et,..TQ3|
|000012e0| 46 69 6c 65 4f 62 6a 65 | 63 74 09 09 09 66 69 6c |FileObje|ct...fil|
|000012f0| 65 29 0d 7b 0d 09 54 51 | 33 53 74 72 69 6e 67 4f |e).{..TQ|3StringO|
|00001300| 62 6a 65 63 74 09 09 73 | 74 72 69 6e 67 4f 62 6a |bject..s|tringObj|
|00001310| 65 63 74 3b 0d 09 54 51 | 33 53 74 61 74 75 73 09 |ect;..TQ|3Status.|
|00001320| 09 09 73 74 61 74 75 73 | 3b 0d 09 0d 09 73 74 72 |..status|;....str|
|00001330| 69 6e 67 4f 62 6a 65 63 | 74 20 3d 20 51 33 46 69 |ingObjec|t = Q3Fi|
|00001340| 6c 65 5f 52 65 61 64 4f | 62 6a 65 63 74 28 66 69 |le_ReadO|bject(fi|
|00001350| 6c 65 29 3b 0d 09 09 0d | 09 73 74 61 74 75 73 20 |le);....|.status |
|00001360| 3d 20 51 33 53 65 74 5f | 41 64 64 28 61 74 74 72 |= Q3Set_|Add(attr|
|00001370| 69 62 75 74 65 53 65 74 | 2c 20 6b 45 6c 65 6d 65 |ibuteSet|, kEleme|
|00001380| 6e 74 54 79 70 65 4e 61 | 6d 65 2c 20 26 73 74 72 |ntTypeNa|me, &str|
|00001390| 69 6e 67 4f 62 6a 65 63 | 74 29 3b 0d 09 0d 09 51 |ingObjec|t);....Q|
|000013a0| 33 4f 62 6a 65 63 74 5f | 44 69 73 70 6f 73 65 28 |3Object_|Dispose(|
|000013b0| 73 74 72 69 6e 67 4f 62 | 6a 65 63 74 29 3b 0d 0d |stringOb|ject);..|
|000013c0| 09 2f 2a 0d 09 09 4e 6f | 74 65 20 74 68 61 74 20 |./*...No|te that |
|000013d0| 74 68 65 20 73 74 72 69 | 6e 67 20 6f 62 6a 65 63 |the stri|ng objec|
|000013e0| 74 20 68 61 73 20 61 20 | 72 65 66 65 72 65 6e 63 |t has a |referenc|
|000013f0| 65 20 63 6f 75 6e 74 20 | 6f 66 20 31 2c 0d 09 09 |e count |of 1,...|
|00001400| 77 68 69 63 68 20 77 69 | 6c 6c 20 62 65 20 74 61 |which wi|ll be ta|
|00001410| 6b 65 6e 20 63 61 72 65 | 20 6f 66 20 69 6e 20 74 |ken care| of in t|
|00001420| 68 65 20 64 69 73 70 6f | 73 65 0d 09 2a 2f 0d 09 |he dispo|se..*/..|
|00001430| 72 65 74 75 72 6e 20 73 | 74 61 74 75 73 3b 0d 7d |return s|tatus;.}|
|00001440| 0d 0d 73 74 61 74 69 63 | 20 54 51 33 53 74 61 74 |..static| TQ3Stat|
|00001450| 75 73 20 4e 61 6d 65 41 | 74 74 72 69 62 75 74 65 |us NameA|ttribute|
|00001460| 5f 43 6f 70 79 41 64 64 | 28 0d 09 54 51 33 53 74 |_CopyAdd|(..TQ3St|
|00001470| 72 69 6e 67 4f 62 6a 65 | 63 74 09 2a 73 72 63 2c |ringObje|ct.*src,|
|00001480| 0d 09 54 51 33 53 74 72 | 69 6e 67 4f 62 6a 65 63 |..TQ3Str|ingObjec|
|00001490| 74 09 2a 64 73 74 29 0d | 7b 0d 09 2a 64 73 74 20 |t.*dst).|{..*dst |
|000014a0| 3d 20 51 33 53 68 61 72 | 65 64 5f 47 65 74 52 65 |= Q3Shar|ed_GetRe|
|000014b0| 66 65 72 65 6e 63 65 28 | 2a 73 72 63 29 3b 0d 09 |ference(|*src);..|
|000014c0| 69 66 20 28 2a 64 73 74 | 20 3d 3d 20 4e 55 4c 4c |if (*dst| == NULL|
|000014d0| 29 20 0d 09 09 72 65 74 | 75 72 6e 20 6b 51 33 46 |) ...ret|urn kQ3F|
|000014e0| 61 69 6c 75 72 65 3b 0d | 09 0d 09 72 65 74 75 72 |ailure;.|...retur|
|000014f0| 6e 20 6b 51 33 53 75 63 | 63 65 73 73 3b 0d 7d 0d |n kQ3Suc|cess;.}.|
|00001500| 0d 73 74 61 74 69 63 20 | 54 51 33 53 74 61 74 75 |.static |TQ3Statu|
|00001510| 73 20 4e 61 6d 65 41 74 | 74 72 69 62 75 74 65 5f |s NameAt|tribute_|
|00001520| 43 6f 70 79 52 65 70 6c | 61 63 65 28 0d 09 54 51 |CopyRepl|ace(..TQ|
|00001530| 33 53 74 72 69 6e 67 4f | 62 6a 65 63 74 09 2a 73 |3StringO|bject.*s|
|00001540| 72 63 2c 0d 09 54 51 33 | 53 74 72 69 6e 67 4f 62 |rc,..TQ3|StringOb|
|00001550| 6a 65 63 74 09 2a 64 73 | 74 29 0d 7b 0d 09 54 51 |ject.*ds|t).{..TQ|
|00001560| 33 53 74 72 69 6e 67 4f | 62 6a 65 63 74 09 74 65 |3StringO|bject.te|
|00001570| 6d 70 53 74 72 69 6e 67 | 3b 0d 09 0d 09 2f 2a 0d |mpString|;..../*.|
|00001580| 09 09 49 74 20 69 73 20 | 61 6c 77 61 79 73 20 67 |..It is |always g|
|00001590| 6f 6f 64 20 66 6f 72 6d | 20 74 6f 20 67 65 74 20 |ood form| to get |
|000015a0| 61 20 72 65 66 65 72 65 | 6e 63 65 20 66 69 72 73 |a refere|nce firs|
|000015b0| 74 2c 0d 09 09 69 6e 20 | 63 61 73 65 20 73 72 63 |t,...in |case src|
|000015c0| 20 61 6e 64 20 64 73 74 | 20 70 6f 69 6e 74 20 74 | and dst| point t|
|000015d0| 6f 20 74 68 65 20 73 61 | 6d 65 20 6f 62 6a 65 63 |o the sa|me objec|
|000015e0| 74 0d 09 2a 2f 0d 09 0d | 09 74 65 6d 70 53 74 72 |t..*/...|.tempStr|
|000015f0| 69 6e 67 20 3d 20 51 33 | 53 68 61 72 65 64 5f 47 |ing = Q3|Shared_G|
|00001600| 65 74 52 65 66 65 72 65 | 6e 63 65 28 2a 73 72 63 |etRefere|nce(*src|
|00001610| 29 3b 0d 09 69 66 20 28 | 74 65 6d 70 53 74 72 69 |);..if (|tempStri|
|00001620| 6e 67 20 3d 3d 20 4e 55 | 4c 4c 29 20 0d 09 09 72 |ng == NU|LL) ...r|
|00001630| 65 74 75 72 6e 20 6b 51 | 33 46 61 69 6c 75 72 65 |eturn kQ|3Failure|
|00001640| 3b 0d 0d 09 69 66 28 20 | 2a 73 72 63 20 29 0d 09 |;...if( |*src )..|
|00001650| 09 51 33 4f 62 6a 65 63 | 74 5f 44 69 73 70 6f 73 |.Q3Objec|t_Dispos|
|00001660| 65 28 20 2a 73 72 63 20 | 29 3b 0d 09 0d 09 2a 64 |e( *src |);....*d|
|00001670| 73 74 20 3d 20 74 65 6d | 70 53 74 72 69 6e 67 3b |st = tem|pString;|
|00001680| 0d 0d 09 72 65 74 75 72 | 6e 20 6b 51 33 53 75 63 |...retur|n kQ3Suc|
|00001690| 63 65 73 73 3b 0d 7d 0d | 0d 73 74 61 74 69 63 20 |cess;.}.|.static |
|000016a0| 54 51 33 53 74 61 74 75 | 73 20 4e 61 6d 65 41 74 |TQ3Statu|s NameAt|
|000016b0| 74 72 69 62 75 74 65 5f | 44 65 6c 65 74 65 28 0d |tribute_|Delete(.|
|000016c0| 09 54 51 33 53 74 72 69 | 6e 67 4f 62 6a 65 63 74 |.TQ3Stri|ngObject|
|000016d0| 09 2a 73 74 72 69 6e 67 | 4f 62 6a 65 63 74 29 0d |.*string|Object).|
|000016e0| 7b 0d 09 69 66 28 2a 73 | 74 72 69 6e 67 4f 62 6a |{..if(*s|tringObj|
|000016f0| 65 63 74 29 0d 09 09 51 | 33 4f 62 6a 65 63 74 5f |ect)...Q|3Object_|
|00001700| 44 69 73 70 6f 73 65 28 | 2a 73 74 72 69 6e 67 4f |Dispose(|*stringO|
|00001710| 62 6a 65 63 74 29 3b 0d | 09 72 65 74 75 72 6e 20 |bject);.|.return |
|00001720| 6b 51 33 53 75 63 63 65 | 73 73 3b 0d 7d 0d 0d 54 |kQ3Succe|ss;.}..T|
|00001730| 51 33 53 74 61 74 75 73 | 20 4e 61 6d 65 41 74 74 |Q3Status| NameAtt|
|00001740| 72 69 62 75 74 65 5f 55 | 6e 72 65 67 69 73 74 65 |ribute_U|nregiste|
|00001750| 72 28 0d 09 76 6f 69 64 | 29 0d 7b 0d 09 69 66 20 |r(..void|).{..if |
|00001760| 28 20 67 4e 61 6d 65 41 | 74 74 72 69 62 75 74 65 |( gNameA|ttribute|
|00001770| 43 6c 61 73 73 20 21 3d | 20 4e 55 4c 4c 20 29 0d |Class !=| NULL ).|
|00001780| 09 09 72 65 74 75 72 6e | 09 51 33 4f 62 6a 65 63 |..return|.Q3Objec|
|00001790| 74 43 6c 61 73 73 5f 55 | 6e 72 65 67 69 73 74 65 |tClass_U|nregiste|
|000017a0| 72 28 67 4e 61 6d 65 41 | 74 74 72 69 62 75 74 65 |r(gNameA|ttribute|
|000017b0| 43 6c 61 73 73 29 3b 0d | 09 09 0d 09 72 65 74 75 |Class);.|....retu|
|000017c0| 72 6e 20 6b 51 33 46 61 | 69 6c 75 72 65 3b 0d 7d |rn kQ3Fa|ilure;.}|
|000017d0| 0d 0d 2f 2a 0d 20 2a 20 | 4e 61 6d 65 41 74 74 72 |../*. * |NameAttr|
|000017e0| 69 62 75 74 65 5f 4d 65 | 74 61 48 61 6e 64 6c 65 |ibute_Me|taHandle|
|000017f0| 72 0d 20 2a 2f 0d 73 74 | 61 74 69 63 20 54 51 33 |r. */.st|atic TQ3|
|00001800| 46 75 6e 63 74 69 6f 6e | 50 6f 69 6e 74 65 72 20 |Function|Pointer |
|00001810| 4e 61 6d 65 41 74 74 72 | 69 62 75 74 65 5f 4d 65 |NameAttr|ibute_Me|
|00001820| 74 61 48 61 6e 64 6c 65 | 72 28 0d 09 54 51 33 4d |taHandle|r(..TQ3M|
|00001830| 65 74 68 6f 64 54 79 70 | 65 09 09 6d 65 74 68 6f |ethodTyp|e..metho|
|00001840| 64 54 79 70 65 29 0d 7b | 0d 09 73 77 69 74 63 68 |dType).{|..switch|
|00001850| 20 28 6d 65 74 68 6f 64 | 54 79 70 65 29 0d 09 7b | (method|Type)..{|
|00001860| 0d 09 09 63 61 73 65 20 | 6b 51 33 4d 65 74 68 6f |...case |kQ3Metho|
|00001870| 64 54 79 70 65 4f 62 6a | 65 63 74 54 72 61 76 65 |dTypeObj|ectTrave|
|00001880| 72 73 65 3a 0d 09 09 09 | 72 65 74 75 72 6e 20 28 |rse:....|return (|
|00001890| 54 51 33 46 75 6e 63 74 | 69 6f 6e 50 6f 69 6e 74 |TQ3Funct|ionPoint|
|000018a0| 65 72 29 20 4e 61 6d 65 | 41 74 74 72 69 62 75 74 |er) Name|Attribut|
|000018b0| 65 5f 54 72 61 76 65 72 | 73 65 3b 0d 09 09 63 61 |e_Traver|se;...ca|
|000018c0| 73 65 20 6b 51 33 4d 65 | 74 68 6f 64 54 79 70 65 |se kQ3Me|thodType|
|000018d0| 4f 62 6a 65 63 74 52 65 | 61 64 44 61 74 61 3a 0d |ObjectRe|adData:.|
|000018e0| 09 09 09 72 65 74 75 72 | 6e 20 28 54 51 33 46 75 |...retur|n (TQ3Fu|
|000018f0| 6e 63 74 69 6f 6e 50 6f | 69 6e 74 65 72 29 20 4e |nctionPo|inter) N|
|00001900| 61 6d 65 41 74 74 72 69 | 62 75 74 65 5f 52 65 61 |ameAttri|bute_Rea|
|00001910| 64 44 61 74 61 3b 0d 09 | 09 63 61 73 65 20 6b 51 |dData;..|.case kQ|
|00001920| 33 4d 65 74 68 6f 64 54 | 79 70 65 45 6c 65 6d 65 |3MethodT|ypeEleme|
|00001930| 6e 74 43 6f 70 79 41 64 | 64 3a 0d 09 09 63 61 73 |ntCopyAd|d:...cas|
|00001940| 65 20 6b 51 33 4d 65 74 | 68 6f 64 54 79 70 65 45 |e kQ3Met|hodTypeE|
|00001950| 6c 65 6d 65 6e 74 43 6f | 70 79 47 65 74 3a 0d 09 |lementCo|pyGet:..|
|00001960| 09 63 61 73 65 20 6b 51 | 33 4d 65 74 68 6f 64 54 |.case kQ|3MethodT|
|00001970| 79 70 65 45 6c 65 6d 65 | 6e 74 43 6f 70 79 44 75 |ypeEleme|ntCopyDu|
|00001980| 70 6c 69 63 61 74 65 3a | 0d 09 09 09 72 65 74 75 |plicate:|....retu|
|00001990| 72 6e 20 28 54 51 33 46 | 75 6e 63 74 69 6f 6e 50 |rn (TQ3F|unctionP|
|000019a0| 6f 69 6e 74 65 72 29 20 | 4e 61 6d 65 41 74 74 72 |ointer) |NameAttr|
|000019b0| 69 62 75 74 65 5f 43 6f | 70 79 41 64 64 3b 0d 09 |ibute_Co|pyAdd;..|
|000019c0| 09 63 61 73 65 20 6b 51 | 33 4d 65 74 68 6f 64 54 |.case kQ|3MethodT|
|000019d0| 79 70 65 45 6c 65 6d 65 | 6e 74 43 6f 70 79 52 65 |ypeEleme|ntCopyRe|
|000019e0| 70 6c 61 63 65 3a 0d 09 | 09 09 72 65 74 75 72 6e |place:..|..return|
|000019f0| 20 28 54 51 33 46 75 6e | 63 74 69 6f 6e 50 6f 69 | (TQ3Fun|ctionPoi|
|00001a00| 6e 74 65 72 29 20 4e 61 | 6d 65 41 74 74 72 69 62 |nter) Na|meAttrib|
|00001a10| 75 74 65 5f 43 6f 70 79 | 52 65 70 6c 61 63 65 3b |ute_Copy|Replace;|
|00001a20| 0d 09 09 63 61 73 65 20 | 6b 51 33 4d 65 74 68 6f |...case |kQ3Metho|
|00001a30| 64 54 79 70 65 45 6c 65 | 6d 65 6e 74 44 65 6c 65 |dTypeEle|mentDele|
|00001a40| 74 65 3a 0d 09 09 09 72 | 65 74 75 72 6e 20 28 54 |te:....r|eturn (T|
|00001a50| 51 33 46 75 6e 63 74 69 | 6f 6e 50 6f 69 6e 74 65 |Q3Functi|onPointe|
|00001a60| 72 29 20 4e 61 6d 65 41 | 74 74 72 69 62 75 74 65 |r) NameA|ttribute|
|00001a70| 5f 44 65 6c 65 74 65 3b | 0d 09 09 64 65 66 61 75 |_Delete;|...defau|
|00001a80| 6c 74 3a 0d 09 09 09 72 | 65 74 75 72 6e 20 28 54 |lt:....r|eturn (T|
|00001a90| 51 33 46 75 6e 63 74 69 | 6f 6e 50 6f 69 6e 74 65 |Q3Functi|onPointe|
|00001aa0| 72 29 20 4e 55 4c 4c 3b | 0d 09 7d 0d 7d 0d 0d 2f |r) NULL;|..}.}../|
|00001ab0| 2a 0d 20 2a 20 4e 61 6d | 65 41 74 74 72 69 62 75 |*. * Nam|eAttribu|
|00001ac0| 74 65 5f 52 65 67 69 73 | 74 65 72 0d 20 2a 2f 0d |te_Regis|ter. */.|
|00001ad0| 54 51 33 53 74 61 74 75 | 73 20 4e 61 6d 65 41 74 |TQ3Statu|s NameAt|
|00001ae0| 74 72 69 62 75 74 65 5f | 52 65 67 69 73 74 65 72 |tribute_|Register|
|00001af0| 28 0d 09 76 6f 69 64 29 | 0d 7b 0d 09 67 4e 61 6d |(..void)|.{..gNam|
|00001b00| 65 41 74 74 72 69 62 75 | 74 65 43 6c 61 73 73 20 |eAttribu|teClass |
|00001b10| 3d 20 0d 09 09 51 33 45 | 6c 65 6d 65 6e 74 43 6c |= ...Q3E|lementCl|
|00001b20| 61 73 73 5f 52 65 67 69 | 73 74 65 72 28 0d 09 09 |ass_Regi|ster(...|
|00001b30| 09 6b 45 6c 65 6d 65 6e | 74 54 79 70 65 4e 61 6d |.kElemen|tTypeNam|
|00001b40| 65 2c 0d 09 09 09 22 4e | 61 6d 65 41 74 74 72 69 |e,...."N|ameAttri|
|00001b50| 62 75 74 65 22 2c 0d 09 | 09 09 73 69 7a 65 6f 66 |bute",..|..sizeof|
|00001b60| 28 54 51 33 53 74 72 69 | 6e 67 4f 62 6a 65 63 74 |(TQ3Stri|ngObject|
|00001b70| 29 2c 0d 09 09 09 4e 61 | 6d 65 41 74 74 72 69 62 |),....Na|meAttrib|
|00001b80| 75 74 65 5f 4d 65 74 61 | 48 61 6e 64 6c 65 72 29 |ute_Meta|Handler)|
|00001b90| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 28 67 4e 61 6d |;...retu|rn (gNam|
|00001ba0| 65 41 74 74 72 69 62 75 | 74 65 43 6c 61 73 73 20 |eAttribu|teClass |
|00001bb0| 3d 3d 20 4e 55 4c 4c 20 | 3f 20 6b 51 33 46 61 69 |== NULL |? kQ3Fai|
|00001bc0| 6c 75 72 65 20 3a 20 6b | 51 33 53 75 63 63 65 73 |lure : k|Q3Succes|
|00001bd0| 73 29 3b 0d 7d 0d 0d 2f | 2a 2a 2a 2a 2a 2a 2a 2a |s);.}../|********|
|00001be0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001bf0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001c00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001c10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001c20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001c30| 2a 2a 2a 2a 2a 2a 0d 20 | 2a 0d 20 2a 09 09 09 09 |******. |*. *....|
|00001c40| 09 09 09 09 09 09 53 43 | 41 4c 45 20 63 75 73 74 |......SC|ALE cust|
|00001c50| 6f 6d 20 61 74 74 72 69 | 62 75 74 65 0d 20 2a 0d |om attri|bute. *.|
|00001c60| 20 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *******|********|
|00001c70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001c80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001c90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001ca0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001cb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2f |********|*******/|
|00001cc0| 0d 0d 2f 2a 0d 20 2a 20 | 55 74 69 6c 69 74 79 20 |../*. * |Utility |
|00001cd0| 66 75 6e 63 74 69 6f 6e | 20 74 6f 20 61 64 64 20 |function| to add |
|00001ce0| 61 20 73 63 61 6c 65 20 | 6f 6e 20 61 6e 20 73 68 |a scale |on an sh|
|00001cf0| 61 70 65 20 6f 62 6a 65 | 63 74 2c 20 67 65 6f 6d |ape obje|ct, geom|
|00001d00| 65 74 72 79 20 6f 62 6a | 65 63 74 2c 20 6f 72 20 |etry obj|ect, or |
|00001d10| 61 74 74 72 69 62 75 74 | 65 20 73 65 74 0d 20 2a |attribut|e set. *|
|00001d20| 2f 0d 0d 54 51 33 53 74 | 61 74 75 73 09 53 65 74 |/..TQ3St|atus.Set|
|00001d30| 53 63 61 6c 65 28 54 51 | 33 4f 62 6a 65 63 74 20 |Scale(TQ|3Object |
|00001d40| 6f 62 6a 65 63 74 2c 20 | 64 6f 75 62 6c 65 20 73 |object, |double s|
|00001d50| 63 61 6c 65 29 0d 7b 0d | 09 54 51 33 41 74 74 72 |cale).{.|.TQ3Attr|
|00001d60| 69 62 75 74 65 53 65 74 | 09 73 65 74 20 3d 20 4e |ibuteSet|.set = N|
|00001d70| 55 4c 4c 3b 0d 09 54 51 | 33 53 74 61 74 75 73 09 |ULL;..TQ|3Status.|
|00001d80| 09 73 74 61 74 75 73 20 | 3d 20 6b 51 33 53 75 63 |.status |= kQ3Suc|
|00001d90| 63 65 73 73 3b 0d 09 0d | 09 69 66 28 20 51 33 4f |cess;...|.if( Q3O|
|00001da0| 62 6a 65 63 74 5f 49 73 | 54 79 70 65 28 6f 62 6a |bject_Is|Type(obj|
|00001db0| 65 63 74 2c 20 6b 51 33 | 53 68 61 72 65 64 54 79 |ect, kQ3|SharedTy|
|00001dc0| 70 65 53 68 61 70 65 29 | 20 3d 3d 20 6b 51 33 54 |peShape)| == kQ3T|
|00001dd0| 72 75 65 20 29 20 7b 0d | 09 09 0d 09 09 69 66 28 |rue ) {.|.....if(|
|00001de0| 20 51 33 4f 62 6a 65 63 | 74 5f 49 73 54 79 70 65 | Q3Objec|t_IsType|
|00001df0| 28 6f 62 6a 65 63 74 2c | 20 6b 51 33 53 68 61 70 |(object,| kQ3Shap|
|00001e00| 65 54 79 70 65 47 65 6f | 6d 65 74 72 79 29 20 3d |eTypeGeo|metry) =|
|00001e10| 3d 20 6b 51 33 54 72 75 | 65 20 29 20 7b 0d 09 09 |= kQ3Tru|e ) {...|
|00001e20| 09 0d 09 09 09 51 33 47 | 65 6f 6d 65 74 72 79 5f |.....Q3G|eometry_|
|00001e30| 47 65 74 41 74 74 72 69 | 62 75 74 65 53 65 74 28 |GetAttri|buteSet(|
|00001e40| 6f 62 6a 65 63 74 2c 20 | 26 73 65 74 29 3b 0d 09 |object, |&set);..|
|00001e50| 09 09 0d 09 09 09 69 66 | 28 20 73 65 74 20 3d 3d |......if|( set ==|
|00001e60| 20 4e 55 4c 4c 20 29 20 | 7b 0d 09 09 09 09 73 65 | NULL ) |{.....se|
|00001e70| 74 20 3d 20 51 33 41 74 | 74 72 69 62 75 74 65 53 |t = Q3At|tributeS|
|00001e80| 65 74 5f 4e 65 77 28 29 | 3b 0d 09 09 09 09 69 66 |et_New()|;.....if|
|00001e90| 28 20 73 65 74 20 3d 3d | 20 4e 55 4c 4c 20 29 20 |( set ==| NULL ) |
|00001ea0| 7b 0d 09 09 09 09 09 73 | 74 61 74 75 73 20 3d 20 |{......s|tatus = |
|00001eb0| 6b 51 33 46 61 69 6c 75 | 72 65 3b 0d 09 09 09 09 |kQ3Failu|re;.....|
|00001ec0| 09 67 6f 74 6f 20 63 6c | 65 61 6e 45 78 69 74 3b |.goto cl|eanExit;|
|00001ed0| 0d 09 09 09 09 7d 0d 09 | 09 09 09 51 33 47 65 6f |.....}..|...Q3Geo|
|00001ee0| 6d 65 74 72 79 5f 53 65 | 74 41 74 74 72 69 62 75 |metry_Se|tAttribu|
|00001ef0| 74 65 53 65 74 28 6f 62 | 6a 65 63 74 2c 20 73 65 |teSet(ob|ject, se|
|00001f00| 74 29 3b 0d 09 09 09 7d | 0d 09 09 7d 20 65 6c 73 |t);....}|...} els|
|00001f10| 65 20 7b 0d 09 09 09 51 | 33 53 68 61 70 65 5f 47 |e {....Q|3Shape_G|
|00001f20| 65 74 53 65 74 28 6f 62 | 6a 65 63 74 2c 20 26 73 |etSet(ob|ject, &s|
|00001f30| 65 74 29 3b 0d 09 09 09 | 0d 09 09 09 69 66 28 20 |et);....|....if( |
|00001f40| 73 65 74 20 3d 3d 20 4e | 55 4c 4c 20 29 20 7b 0d |set == N|ULL ) {.|
|00001f50| 09 09 09 09 73 65 74 20 | 3d 20 51 33 53 65 74 5f |....set |= Q3Set_|
|00001f60| 4e 65 77 28 29 3b 0d 09 | 09 09 09 69 66 28 20 73 |New();..|...if( s|
|00001f70| 65 74 20 3d 3d 20 4e 55 | 4c 4c 20 29 20 7b 0d 09 |et == NU|LL ) {..|
|00001f80| 09 09 09 09 73 74 61 74 | 75 73 20 3d 20 6b 51 33 |....stat|us = kQ3|
|00001f90| 46 61 69 6c 75 72 65 3b | 0d 09 09 09 09 09 67 6f |Failure;|......go|
|00001fa0| 74 6f 20 63 6c 65 61 6e | 45 78 69 74 3b 0d 09 09 |to clean|Exit;...|
|00001fb0| 09 09 7d 0d 09 09 09 09 | 51 33 53 68 61 70 65 5f |..}.....|Q3Shape_|
|00001fc0| 53 65 74 53 65 74 28 6f | 62 6a 65 63 74 2c 20 73 |SetSet(o|bject, s|
|00001fd0| 65 74 29 3b 0d 09 09 09 | 7d 0d 09 09 7d 0d 09 09 |et);....|}...}...|
|00001fe0| 09 0d 09 09 69 66 28 20 | 51 33 53 65 74 5f 41 64 |....if( |Q3Set_Ad|
|00001ff0| 64 28 73 65 74 2c 20 6b | 45 6c 65 6d 65 6e 74 54 |d(set, k|ElementT|
|00002000| 79 70 65 53 63 61 6c 65 | 2c 20 26 73 63 61 6c 65 |ypeScale|, &scale|
|00002010| 29 20 3d 3d 20 6b 51 33 | 46 61 69 6c 75 72 65 20 |) == kQ3|Failure |
|00002020| 29 20 7b 0d 09 09 09 73 | 74 61 74 75 73 20 3d 20 |) {....s|tatus = |
|00002030| 6b 51 33 46 61 69 6c 75 | 72 65 3b 0d 09 09 09 67 |kQ3Failu|re;....g|
|00002040| 6f 74 6f 20 63 6c 65 61 | 6e 45 78 69 74 3b 0d 09 |oto clea|nExit;..|
|00002050| 09 7d 0d 09 7d 20 65 6c | 73 65 20 69 66 28 20 51 |.}..} el|se if( Q|
|00002060| 33 4f 62 6a 65 63 74 5f | 49 73 54 79 70 65 28 6f |3Object_|IsType(o|
|00002070| 62 6a 65 63 74 2c 20 6b | 51 33 53 68 61 72 65 64 |bject, k|Q3Shared|
|00002080| 54 79 70 65 53 65 74 29 | 20 3d 3d 20 6b 51 33 54 |TypeSet)| == kQ3T|
|00002090| 72 75 65 20 29 20 7b 0d | 09 09 69 66 28 20 51 33 |rue ) {.|..if( Q3|
|000020a0| 41 74 74 72 69 62 75 74 | 65 53 65 74 5f 41 64 64 |Attribut|eSet_Add|
|000020b0| 28 6f 62 6a 65 63 74 2c | 20 6b 45 6c 65 6d 65 6e |(object,| kElemen|
|000020c0| 74 54 79 70 65 53 63 61 | 6c 65 2c 20 26 73 63 61 |tTypeSca|le, &sca|
|000020d0| 6c 65 29 20 3d 3d 20 6b | 51 33 46 61 69 6c 75 72 |le) == k|Q3Failur|
|000020e0| 65 20 29 20 7b 0d 09 09 | 09 73 74 61 74 75 73 20 |e ) {...|.status |
|000020f0| 3d 20 6b 51 33 46 61 69 | 6c 75 72 65 3b 0d 09 09 |= kQ3Fai|lure;...|
|00002100| 09 67 6f 74 6f 20 63 6c | 65 61 6e 45 78 69 74 3b |.goto cl|eanExit;|
|00002110| 0d 09 09 7d 0d 09 7d 20 | 65 6c 73 65 20 0d 09 09 |...}..} |else ...|
|00002120| 73 74 61 74 75 73 20 3d | 20 6b 51 33 46 61 69 6c |status =| kQ3Fail|
|00002130| 75 72 65 3b 0d 09 09 0d | 63 6c 65 61 6e 45 78 69 |ure;....|cleanExi|
|00002140| 74 3a 0d 09 69 66 28 20 | 73 65 74 20 29 0d 09 09 |t:..if( |set )...|
|00002150| 51 33 4f 62 6a 65 63 74 | 5f 44 69 73 70 6f 73 65 |Q3Object|_Dispose|
|00002160| 28 73 65 74 29 3b 0d 09 | 72 65 74 75 72 6e 20 73 |(set);..|return s|
|00002170| 74 61 74 75 73 3b 0d 7d | 0d 0d 2f 2a 0d 20 2a 20 |tatus;.}|../*. * |
|00002180| 53 63 61 6c 65 41 74 74 | 72 69 62 75 74 65 5f 54 |ScaleAtt|ribute_T|
|00002190| 72 61 76 65 72 73 65 0d | 20 2a 2f 0d 20 0d 73 74 |raverse.| */. .st|
|000021a0| 61 74 69 63 20 54 51 33 | 53 74 61 74 75 73 20 53 |atic TQ3|Status S|
|000021b0| 63 61 6c 65 41 74 74 72 | 69 62 75 74 65 5f 54 72 |caleAttr|ibute_Tr|
|000021c0| 61 76 65 72 73 65 28 0d | 09 54 51 33 4f 62 6a 65 |averse(.|.TQ3Obje|
|000021d0| 63 74 09 09 09 09 75 6e | 75 73 65 64 2c 0d 09 54 |ct....un|used,..T|
|000021e0| 51 33 46 6c 6f 61 74 36 | 34 09 09 09 09 2a 73 63 |Q3Float6|4....*sc|
|000021f0| 61 6c 65 2c 0d 09 54 51 | 33 56 69 65 77 4f 62 6a |ale,..TQ|3ViewObj|
|00002200| 65 63 74 09 09 09 76 69 | 65 77 29 0d 7b 0d 09 28 |ect...vi|ew).{..(|
|00002210| 76 6f 69 64 29 20 75 6e | 75 73 65 64 3b 0d 09 0d |void) un|used;...|
|00002220| 09 69 66 20 28 73 63 61 | 6c 65 20 3d 3d 20 4e 55 |.if (sca|le == NU|
|00002230| 4c 4c 29 0d 09 09 72 65 | 74 75 72 6e 20 6b 51 33 |LL)...re|turn kQ3|
|00002240| 53 75 63 63 65 73 73 3b | 0d 0d 09 72 65 74 75 72 |Success;|...retur|
|00002250| 6e 20 51 33 56 69 65 77 | 5f 53 75 62 6d 69 74 57 |n Q3View|_SubmitW|
|00002260| 72 69 74 65 44 61 74 61 | 28 0d 09 09 76 69 65 77 |riteData|(...view|
|00002270| 2c 20 73 69 7a 65 6f 66 | 28 54 51 33 46 6c 6f 61 |, sizeof|(TQ3Floa|
|00002280| 74 36 34 29 2c 20 73 63 | 61 6c 65 2c 20 4e 55 4c |t64), sc|ale, NUL|
|00002290| 4c 29 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 53 63 61 |L);.}../|*. * Sca|
|000022a0| 6c 65 41 74 74 72 69 62 | 75 74 65 5f 57 72 69 74 |leAttrib|ute_Writ|
|000022b0| 65 0d 20 2a 2f 0d 20 0d | 73 74 61 74 69 63 20 54 |e. */. .|static T|
|000022c0| 51 33 53 74 61 74 75 73 | 20 53 63 61 6c 65 41 74 |Q3Status| ScaleAt|
|000022d0| 74 72 69 62 75 74 65 5f | 57 72 69 74 65 28 0d 09 |tribute_|Write(..|
|000022e0| 54 51 33 46 6c 6f 61 74 | 36 34 09 09 09 09 2a 73 |TQ3Float|64....*s|
|000022f0| 63 61 6c 65 2c 0d 09 54 | 51 33 46 69 6c 65 4f 62 |cale,..T|Q3FileOb|
|00002300| 6a 65 63 74 09 09 09 66 | 69 6c 65 29 0d 7b 0d 09 |ject...f|ile).{..|
|00002310| 72 65 74 75 72 6e 20 0d | 09 09 51 33 46 6c 6f 61 |return .|..Q3Floa|
|00002320| 74 36 34 5f 57 72 69 74 | 65 28 2a 73 63 61 6c 65 |t64_Writ|e(*scale|
|00002330| 2c 20 66 69 6c 65 29 3b | 0d 7d 0d 0d 2f 2a 0d 20 |, file);|.}../*. |
|00002340| 2a 20 53 63 61 6c 65 41 | 74 74 72 69 62 75 74 65 |* ScaleA|ttribute|
|00002350| 5f 52 65 61 64 44 61 74 | 61 0d 20 2a 2f 0d 20 0d |_ReadDat|a. */. .|
|00002360| 73 74 61 74 69 63 20 54 | 51 33 53 74 61 74 75 73 |static T|Q3Status|
|00002370| 20 53 63 61 6c 65 41 74 | 74 72 69 62 75 74 65 5f | ScaleAt|tribute_|
|00002380| 52 65 61 64 44 61 74 61 | 28 0d 09 54 51 33 53 65 |ReadData|(..TQ3Se|
|00002390| 74 4f 62 6a 65 63 74 09 | 09 09 61 74 74 72 69 62 |tObject.|..attrib|
|000023a0| 75 74 65 53 65 74 2c 0d | 09 54 51 33 46 69 6c 65 |uteSet,.|.TQ3File|
|000023b0| 4f 62 6a 65 63 74 09 09 | 09 66 69 6c 65 29 0d 7b |Object..|.file).{|
|000023c0| 0d 09 64 6f 75 62 6c 65 | 09 09 09 73 63 61 6c 65 |..double|...scale|
|000023d0| 3b 0d 09 0d 09 69 66 28 | 20 51 33 46 6c 6f 61 74 |;....if(| Q3Float|
|000023e0| 36 34 5f 52 65 61 64 28 | 26 73 63 61 6c 65 2c 20 |64_Read(|&scale, |
|000023f0| 66 69 6c 65 29 20 3d 3d | 20 6b 51 33 46 61 69 6c |file) ==| kQ3Fail|
|00002400| 75 72 65 29 20 7b 0d 09 | 09 72 65 74 75 72 6e 20 |ure) {..|.return |
|00002410| 6b 51 33 46 61 69 6c 75 | 72 65 3b 0d 09 7d 0d 09 |kQ3Failu|re;..}..|
|00002420| 09 0d 09 72 65 74 75 72 | 6e 20 51 33 53 65 74 5f |...retur|n Q3Set_|
|00002430| 41 64 64 28 61 74 74 72 | 69 62 75 74 65 53 65 74 |Add(attr|ibuteSet|
|00002440| 2c 20 6b 45 6c 65 6d 65 | 6e 74 54 79 70 65 53 63 |, kEleme|ntTypeSc|
|00002450| 61 6c 65 2c 20 26 73 63 | 61 6c 65 29 3b 0d 7d 0d |ale, &sc|ale);.}.|
|00002460| 0d 2f 2a 0d 20 2a 20 53 | 63 61 6c 65 41 74 74 72 |./*. * S|caleAttr|
|00002470| 69 62 75 74 65 5f 4d 65 | 74 61 48 61 6e 64 6c 65 |ibute_Me|taHandle|
|00002480| 72 0d 20 2a 2f 0d 73 74 | 61 74 69 63 20 54 51 33 |r. */.st|atic TQ3|
|00002490| 46 75 6e 63 74 69 6f 6e | 50 6f 69 6e 74 65 72 20 |Function|Pointer |
|000024a0| 53 63 61 6c 65 41 74 74 | 72 69 62 75 74 65 5f 4d |ScaleAtt|ribute_M|
|000024b0| 65 74 61 48 61 6e 64 6c | 65 72 28 0d 09 54 51 33 |etaHandl|er(..TQ3|
|000024c0| 4d 65 74 68 6f 64 54 79 | 70 65 09 09 6d 65 74 68 |MethodTy|pe..meth|
|000024d0| 6f 64 54 79 70 65 29 0d | 7b 0d 09 73 77 69 74 63 |odType).|{..switc|
|000024e0| 68 20 28 6d 65 74 68 6f | 64 54 79 70 65 29 0d 09 |h (metho|dType)..|
|000024f0| 7b 0d 09 09 63 61 73 65 | 20 6b 51 33 4d 65 74 68 |{...case| kQ3Meth|
|00002500| 6f 64 54 79 70 65 4f 62 | 6a 65 63 74 54 72 61 76 |odTypeOb|jectTrav|
|00002510| 65 72 73 65 3a 0d 09 09 | 09 72 65 74 75 72 6e 20 |erse:...|.return |
|00002520| 28 54 51 33 46 75 6e 63 | 74 69 6f 6e 50 6f 69 6e |(TQ3Func|tionPoin|
|00002530| 74 65 72 29 20 53 63 61 | 6c 65 41 74 74 72 69 62 |ter) Sca|leAttrib|
|00002540| 75 74 65 5f 54 72 61 76 | 65 72 73 65 3b 0d 09 09 |ute_Trav|erse;...|
|00002550| 63 61 73 65 20 6b 51 33 | 4d 65 74 68 6f 64 54 79 |case kQ3|MethodTy|
|00002560| 70 65 4f 62 6a 65 63 74 | 57 72 69 74 65 3a 0d 09 |peObject|Write:..|
|00002570| 09 09 72 65 74 75 72 6e | 20 28 54 51 33 46 75 6e |..return| (TQ3Fun|
|00002580| 63 74 69 6f 6e 50 6f 69 | 6e 74 65 72 29 20 53 63 |ctionPoi|nter) Sc|
|00002590| 61 6c 65 41 74 74 72 69 | 62 75 74 65 5f 57 72 69 |aleAttri|bute_Wri|
|000025a0| 74 65 3b 0d 09 09 63 61 | 73 65 20 6b 51 33 4d 65 |te;...ca|se kQ3Me|
|000025b0| 74 68 6f 64 54 79 70 65 | 4f 62 6a 65 63 74 52 65 |thodType|ObjectRe|
|000025c0| 61 64 44 61 74 61 3a 0d | 09 09 09 72 65 74 75 72 |adData:.|...retur|
|000025d0| 6e 20 28 54 51 33 46 75 | 6e 63 74 69 6f 6e 50 6f |n (TQ3Fu|nctionPo|
|000025e0| 69 6e 74 65 72 29 20 53 | 63 61 6c 65 41 74 74 72 |inter) S|caleAttr|
|000025f0| 69 62 75 74 65 5f 52 65 | 61 64 44 61 74 61 3b 0d |ibute_Re|adData;.|
|00002600| 09 09 64 65 66 61 75 6c | 74 3a 0d 09 09 09 72 65 |..defaul|t:....re|
|00002610| 74 75 72 6e 20 28 54 51 | 33 46 75 6e 63 74 69 6f |turn (TQ|3Functio|
|00002620| 6e 50 6f 69 6e 74 65 72 | 29 20 4e 55 4c 4c 3b 0d |nPointer|) NULL;.|
|00002630| 09 7d 0d 7d 0d 0d 2f 2a | 0d 20 2a 20 53 63 61 6c |.}.}../*|. * Scal|
|00002640| 65 41 74 74 72 69 62 75 | 74 65 5f 52 65 67 69 73 |eAttribu|te_Regis|
|00002650| 74 65 72 0d 20 2a 2f 0d | 54 51 33 53 74 61 74 75 |ter. */.|TQ3Statu|
|00002660| 73 20 53 63 61 6c 65 41 | 74 74 72 69 62 75 74 65 |s ScaleA|ttribute|
|00002670| 5f 52 65 67 69 73 74 65 | 72 28 0d 09 76 6f 69 64 |_Registe|r(..void|
|00002680| 29 0d 7b 0d 09 67 53 63 | 61 6c 65 41 74 74 72 69 |).{..gSc|aleAttri|
|00002690| 62 75 74 65 43 6c 61 73 | 73 20 3d 20 0d 09 09 51 |buteClas|s = ...Q|
|000026a0| 33 45 6c 65 6d 65 6e 74 | 43 6c 61 73 73 5f 52 65 |3Element|Class_Re|
|000026b0| 67 69 73 74 65 72 28 0d | 09 09 09 6b 45 6c 65 6d |gister(.|...kElem|
|000026c0| 65 6e 74 54 79 70 65 53 | 63 61 6c 65 2c 0d 09 09 |entTypeS|cale,...|
|000026d0| 09 22 53 63 61 6c 65 41 | 74 74 72 69 62 75 74 65 |."ScaleA|ttribute|
|000026e0| 22 2c 0d 09 09 09 73 69 | 7a 65 6f 66 28 54 51 33 |",....si|zeof(TQ3|
|000026f0| 46 6c 6f 61 74 36 34 29 | 2c 0d 09 09 09 53 63 61 |Float64)|,....Sca|
|00002700| 6c 65 41 74 74 72 69 62 | 75 74 65 5f 4d 65 74 61 |leAttrib|ute_Meta|
|00002710| 48 61 6e 64 6c 65 72 29 | 3b 0d 0d 09 72 65 74 75 |Handler)|;...retu|
|00002720| 72 6e 20 28 67 53 63 61 | 6c 65 41 74 74 72 69 62 |rn (gSca|leAttrib|
|00002730| 75 74 65 43 6c 61 73 73 | 20 3d 3d 20 4e 55 4c 4c |uteClass| == NULL|
|00002740| 20 3f 20 6b 51 33 46 61 | 69 6c 75 72 65 20 3a 20 | ? kQ3Fa|ilure : |
|00002750| 6b 51 33 53 75 63 63 65 | 73 73 29 3b 0d 7d 0d 0d |kQ3Succe|ss);.}..|
|00002760| 2f 2a 0d 20 2a 20 53 63 | 61 6c 65 41 74 74 72 69 |/*. * Sc|aleAttri|
|00002770| 62 75 74 65 5f 55 6e 72 | 65 67 69 73 74 65 72 0d |bute_Unr|egister.|
|00002780| 20 2a 2f 0d 54 51 33 53 | 74 61 74 75 73 20 53 63 | */.TQ3S|tatus Sc|
|00002790| 61 6c 65 41 74 74 72 69 | 62 75 74 65 5f 55 6e 72 |aleAttri|bute_Unr|
|000027a0| 65 67 69 73 74 65 72 28 | 0d 09 76 6f 69 64 29 0d |egister(|..void).|
|000027b0| 7b 0d 09 69 66 20 28 20 | 67 53 63 61 6c 65 41 74 |{..if ( |gScaleAt|
|000027c0| 74 72 69 62 75 74 65 43 | 6c 61 73 73 20 21 3d 20 |tributeC|lass != |
|000027d0| 4e 55 4c 4c 20 29 0d 09 | 09 72 65 74 75 72 6e 09 |NULL )..|.return.|
|000027e0| 51 33 4f 62 6a 65 63 74 | 43 6c 61 73 73 5f 55 6e |Q3Object|Class_Un|
|000027f0| 72 65 67 69 73 74 65 72 | 28 67 53 63 61 6c 65 41 |register|(gScaleA|
|00002800| 74 74 72 69 62 75 74 65 | 43 6c 61 73 73 29 3b 0d |ttribute|Class);.|
|00002810| 09 09 0d 09 72 65 74 75 | 72 6e 20 6b 51 33 46 61 |....retu|rn kQ3Fa|
|00002820| 69 6c 75 72 65 3b 0d 7d | 0d 0d 2f 2a 2a 2a 2a 2a |ilure;.}|../*****|
|00002830| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002840| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002850| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002860| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002870| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002880| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 0d 20 2a 0d 20 2a 09 |********|*. *. *.|
|00002890| 09 09 09 09 09 09 09 63 | 6f 6d 6d 6f 6e 20 72 6f |.......c|ommon ro|
|000028a0| 75 74 69 6e 65 73 20 66 | 6f 72 20 64 65 61 6c 69 |utines f|or deali|
|000028b0| 6e 67 20 77 69 74 68 20 | 76 65 63 74 6f 72 73 0d |ng with |vectors.|
|000028c0| 20 2a 0d 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *. ****|********|
|000028d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000028e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000028f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002900| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002910| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002920| 2a 2a 2f 0d 0d 73 74 61 | 74 69 63 20 54 51 33 53 |**/..sta|tic TQ3S|
|00002930| 74 61 74 75 73 20 76 65 | 63 74 6f 72 5f 54 72 61 |tatus ve|ctor_Tra|
|00002940| 76 65 72 73 65 28 0d 09 | 54 51 33 4f 62 6a 65 63 |verse(..|TQ3Objec|
|00002950| 74 09 09 09 09 75 6e 75 | 73 65 64 2c 0d 09 54 51 |t....unu|sed,..TQ|
|00002960| 33 56 65 63 74 6f 72 33 | 44 09 09 09 09 2a 75 70 |3Vector3|D....*up|
|00002970| 56 65 63 74 6f 72 2c 0d | 09 54 51 33 56 69 65 77 |Vector,.|.TQ3View|
|00002980| 4f 62 6a 65 63 74 09 09 | 09 76 69 65 77 29 0d 7b |Object..|.view).{|
|00002990| 0d 09 28 76 6f 69 64 29 | 20 75 6e 75 73 65 64 3b |..(void)| unused;|
|000029a0| 0d 09 0d 09 69 66 20 28 | 75 70 56 65 63 74 6f 72 |....if (|upVector|
|000029b0| 20 3d 3d 20 4e 55 4c 4c | 29 0d 09 09 72 65 74 75 | == NULL|)...retu|
|000029c0| 72 6e 20 6b 51 33 53 75 | 63 63 65 73 73 3b 0d 0d |rn kQ3Su|ccess;..|
|000029d0| 09 72 65 74 75 72 6e 20 | 51 33 56 69 65 77 5f 53 |.return |Q3View_S|
|000029e0| 75 62 6d 69 74 57 72 69 | 74 65 44 61 74 61 28 0d |ubmitWri|teData(.|
|000029f0| 09 09 76 69 65 77 2c 20 | 73 69 7a 65 6f 66 28 54 |..view, |sizeof(T|
|00002a00| 51 33 56 65 63 74 6f 72 | 33 44 29 2c 20 75 70 56 |Q3Vector|3D), upV|
|00002a10| 65 63 74 6f 72 2c 20 4e | 55 4c 4c 29 3b 0d 7d 0d |ector, N|ULL);.}.|
|00002a20| 0d 73 74 61 74 69 63 20 | 54 51 33 53 74 61 74 75 |.static |TQ3Statu|
|00002a30| 73 20 76 65 63 74 6f 72 | 5f 57 72 69 74 65 28 0d |s vector|_Write(.|
|00002a40| 09 54 51 33 56 65 63 74 | 6f 72 33 44 09 09 09 09 |.TQ3Vect|or3D....|
|00002a50| 2a 75 70 56 65 63 74 6f | 72 2c 0d 09 54 51 33 46 |*upVecto|r,..TQ3F|
|00002a60| 69 6c 65 4f 62 6a 65 63 | 74 09 09 09 66 69 6c 65 |ileObjec|t...file|
|00002a70| 29 0d 7b 0d 09 72 65 74 | 75 72 6e 20 0d 09 09 51 |).{..ret|urn ...Q|
|00002a80| 33 56 65 63 74 6f 72 33 | 44 5f 57 72 69 74 65 28 |3Vector3|D_Write(|
|00002a90| 75 70 56 65 63 74 6f 72 | 2c 20 66 69 6c 65 29 3b |upVector|, file);|
|00002aa0| 0d 7d 0d 0d 73 74 61 74 | 69 63 20 54 51 33 53 74 |.}..stat|ic TQ3St|
|00002ab0| 61 74 75 73 20 76 65 63 | 74 6f 72 5f 43 6f 70 79 |atus vec|tor_Copy|
|00002ac0| 41 64 64 28 0d 09 54 51 | 33 56 65 63 74 6f 72 33 |Add(..TQ|3Vector3|
|00002ad0| 44 09 2a 73 72 63 2c 0d | 09 54 51 33 56 65 63 74 |D.*src,.|.TQ3Vect|
|00002ae0| 6f 72 33 44 09 2a 64 73 | 74 29 0d 7b 0d 09 2a 64 |or3D.*ds|t).{..*d|
|00002af0| 73 74 20 3d 20 2a 73 72 | 63 3b 0d 09 72 65 74 75 |st = *sr|c;..retu|
|00002b00| 72 6e 20 6b 51 33 53 75 | 63 63 65 73 73 3b 0d 7d |rn kQ3Su|ccess;.}|
|00002b10| 0d 0d 73 74 61 74 69 63 | 20 54 51 33 53 74 61 74 |..static| TQ3Stat|
|00002b20| 75 73 20 76 65 63 74 6f | 72 5f 43 6f 70 79 52 65 |us vecto|r_CopyRe|
|00002b30| 70 6c 61 63 65 28 0d 09 | 54 51 33 56 65 63 74 6f |place(..|TQ3Vecto|
|00002b40| 72 33 44 09 2a 73 72 63 | 2c 0d 09 54 51 33 56 65 |r3D.*src|,..TQ3Ve|
|00002b50| 63 74 6f 72 33 44 09 2a | 64 73 74 29 0d 7b 0d 09 |ctor3D.*|dst).{..|
|00002b60| 2a 64 73 74 20 3d 20 2a | 73 72 63 3b 0d 09 72 65 |*dst = *|src;..re|
|00002b70| 74 75 72 6e 20 6b 51 33 | 53 75 63 63 65 73 73 3b |turn kQ3|Success;|
|00002b80| 0d 7d 0d 0d 2f 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.}../***|********|
|00002b90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002ba0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002bb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002bc0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002bd0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002be0| 2a 2a 2a 0d 20 2a 0d 20 | 2a 09 09 09 09 09 09 09 |***. *. |*.......|
|00002bf0| 09 09 09 55 50 20 56 45 | 43 54 4f 52 20 63 75 73 |...UP VE|CTOR cus|
|00002c00| 74 6f 6d 20 61 74 74 72 | 69 62 75 74 65 0d 20 2a |tom attr|ibute. *|
|00002c10| 0d 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |. ******|********|
|00002c20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c70| 2f 0d 0d 2f 2a 0d 20 2a | 20 55 74 69 6c 69 74 79 |/../*. *| Utility|
|00002c80| 20 66 75 6e 63 74 69 6f | 6e 20 74 6f 20 73 70 65 | functio|n to spe|
|00002c90| 63 69 66 79 20 74 68 65 | 20 75 70 20 76 65 63 74 |cify the| up vect|
|00002ca0| 6f 72 20 6f 6e 20 61 20 | 67 72 6f 75 70 2c 20 67 |or on a |group, g|
|00002cb0| 65 6f 6d 65 74 72 79 20 | 6f 62 6a 65 63 74 2c 20 |eometry |object, |
|00002cc0| 6f 72 20 61 74 74 72 69 | 62 75 74 65 20 73 65 74 |or attri|bute set|
|00002cd0| 0d 20 2a 2f 0d 0d 54 51 | 33 53 74 61 74 75 73 09 |. */..TQ|3Status.|
|00002ce0| 53 65 74 55 70 56 65 63 | 74 6f 72 28 54 51 33 4f |SetUpVec|tor(TQ3O|
|00002cf0| 62 6a 65 63 74 20 6f 62 | 6a 65 63 74 2c 20 54 51 |bject ob|ject, TQ|
|00002d00| 33 56 65 63 74 6f 72 33 | 44 20 2a 75 70 56 65 63 |3Vector3|D *upVec|
|00002d10| 74 6f 72 29 0d 7b 0d 09 | 54 51 33 41 74 74 72 69 |tor).{..|TQ3Attri|
|00002d20| 62 75 74 65 53 65 74 09 | 73 65 74 20 3d 20 4e 55 |buteSet.|set = NU|
|00002d30| 4c 4c 3b 0d 09 54 51 33 | 53 74 61 74 75 73 09 09 |LL;..TQ3|Status..|
|00002d40| 73 74 61 74 75 73 20 3d | 20 6b 51 33 53 75 63 63 |status =| kQ3Succ|
|00002d50| 65 73 73 3b 0d 09 0d 09 | 69 66 28 20 51 33 4f 62 |ess;....|if( Q3Ob|
|00002d60| 6a 65 63 74 5f 49 73 54 | 79 70 65 28 6f 62 6a 65 |ject_IsT|ype(obje|
|00002d70| 63 74 2c 20 6b 51 33 53 | 68 61 70 65 54 79 70 65 |ct, kQ3S|hapeType|
|00002d80| 47 65 6f 6d 65 74 72 79 | 29 20 3d 3d 20 6b 51 33 |Geometry|) == kQ3|
|00002d90| 54 72 75 65 20 29 20 7b | 0d 09 09 51 33 47 65 6f |True ) {|...Q3Geo|
|00002da0| 6d 65 74 72 79 5f 47 65 | 74 41 74 74 72 69 62 75 |metry_Ge|tAttribu|
|00002db0| 74 65 53 65 74 28 6f 62 | 6a 65 63 74 2c 20 26 73 |teSet(ob|ject, &s|
|00002dc0| 65 74 29 3b 0d 09 09 0d | 09 09 69 66 28 20 73 65 |et);....|..if( se|
|00002dd0| 74 20 3d 3d 20 4e 55 4c | 4c 20 29 20 7b 0d 09 09 |t == NUL|L ) {...|
|00002de0| 09 73 65 74 20 3d 20 51 | 33 41 74 74 72 69 62 75 |.set = Q|3Attribu|
|00002df0| 74 65 53 65 74 5f 4e 65 | 77 28 29 3b 0d 09 09 09 |teSet_Ne|w();....|
|00002e00| 69 66 28 20 73 65 74 20 | 3d 3d 20 4e 55 4c 4c 20 |if( set |== NULL |
|00002e10| 29 20 7b 0d 09 09 09 09 | 73 74 61 74 75 73 20 3d |) {.....|status =|
|00002e20| 20 6b 51 33 46 61 69 6c | 75 72 65 3b 0d 09 09 09 | kQ3Fail|ure;....|
|00002e30| 09 67 6f 74 6f 20 63 6c | 65 61 6e 45 78 69 74 3b |.goto cl|eanExit;|
|00002e40| 0d 09 09 09 7d 0d 09 09 | 09 51 33 47 65 6f 6d 65 |....}...|.Q3Geome|
|00002e50| 74 72 79 5f 53 65 74 41 | 74 74 72 69 62 75 74 65 |try_SetA|ttribute|
|00002e60| 53 65 74 28 6f 62 6a 65 | 63 74 2c 20 73 65 74 29 |Set(obje|ct, set)|
|00002e70| 3b 0d 09 09 7d 0d 09 7d | 20 65 6c 73 65 20 69 66 |;...}..}| else if|
|00002e80| 28 20 51 33 4f 62 6a 65 | 63 74 5f 49 73 54 79 70 |( Q3Obje|ct_IsTyp|
|00002e90| 65 28 6f 62 6a 65 63 74 | 2c 20 6b 51 33 53 68 61 |e(object|, kQ3Sha|
|00002ea0| 70 65 54 79 70 65 47 72 | 6f 75 70 29 20 3d 3d 20 |peTypeGr|oup) == |
|00002eb0| 6b 51 33 54 72 75 65 20 | 29 7b 0d 09 09 51 33 53 |kQ3True |){...Q3S|
|00002ec0| 68 61 70 65 5f 47 65 74 | 53 65 74 28 6f 62 6a 65 |hape_Get|Set(obje|
|00002ed0| 63 74 2c 20 26 73 65 74 | 29 3b 0d 09 09 0d 09 09 |ct, &set|);......|
|00002ee0| 69 66 28 20 73 65 74 20 | 3d 3d 20 4e 55 4c 4c 20 |if( set |== NULL |
|00002ef0| 29 20 7b 0d 09 09 09 73 | 65 74 20 3d 20 51 33 53 |) {....s|et = Q3S|
|00002f00| 65 74 5f 4e 65 77 28 29 | 3b 0d 09 09 09 69 66 28 |et_New()|;....if(|
|00002f10| 20 73 65 74 20 3d 3d 20 | 4e 55 4c 4c 20 29 20 7b | set == |NULL ) {|
|00002f20| 0d 09 09 09 09 73 74 61 | 74 75 73 20 3d 20 6b 51 |.....sta|tus = kQ|
|00002f30| 33 46 61 69 6c 75 72 65 | 3b 0d 09 09 09 09 67 6f |3Failure|;.....go|
|00002f40| 74 6f 20 63 6c 65 61 6e | 45 78 69 74 3b 0d 09 09 |to clean|Exit;...|
|00002f50| 09 7d 0d 09 09 09 51 33 | 53 68 61 70 65 5f 53 65 |.}....Q3|Shape_Se|
|00002f60| 74 53 65 74 28 6f 62 6a | 65 63 74 2c 20 73 65 74 |tSet(obj|ect, set|
|00002f70| 29 3b 0d 09 09 7d 0d 09 | 7d 0d 09 09 09 0d 09 69 |);...}..|}......i|
|00002f80| 66 28 20 73 65 74 20 29 | 20 7b 0d 09 09 69 66 28 |f( set )| {...if(|
|00002f90| 20 51 33 53 65 74 5f 41 | 64 64 28 73 65 74 2c 20 | Q3Set_A|dd(set, |
|00002fa0| 6b 45 6c 65 6d 65 6e 74 | 54 79 70 65 55 70 56 65 |kElement|TypeUpVe|
|00002fb0| 63 74 6f 72 2c 20 26 75 | 70 56 65 63 74 6f 72 29 |ctor, &u|pVector)|
|00002fc0| 20 3d 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 20 29 | == kQ3F|ailure )|
|00002fd0| 20 7b 0d 09 09 09 73 74 | 61 74 75 73 20 3d 20 6b | {....st|atus = k|
|00002fe0| 51 33 46 61 69 6c 75 72 | 65 3b 0d 09 09 09 67 6f |Q3Failur|e;....go|
|00002ff0| 74 6f 20 63 6c 65 61 6e | 45 78 69 74 3b 0d 09 09 |to clean|Exit;...|
|00003000| 7d 0d 09 7d 20 65 6c 73 | 65 20 69 66 28 20 51 33 |}..} els|e if( Q3|
|00003010| 4f 62 6a 65 63 74 5f 49 | 73 54 79 70 65 28 6f 62 |Object_I|sType(ob|
|00003020| 6a 65 63 74 2c 20 6b 51 | 33 53 68 61 72 65 64 54 |ject, kQ|3SharedT|
|00003030| 79 70 65 53 65 74 29 20 | 3d 3d 20 6b 51 33 54 72 |ypeSet) |== kQ3Tr|
|00003040| 75 65 20 29 20 7b 0d 09 | 09 69 66 28 20 51 33 41 |ue ) {..|.if( Q3A|
|00003050| 74 74 72 69 62 75 74 65 | 53 65 74 5f 41 64 64 28 |ttribute|Set_Add(|
|00003060| 6f 62 6a 65 63 74 2c 20 | 6b 45 6c 65 6d 65 6e 74 |object, |kElement|
|00003070| 54 79 70 65 55 70 56 65 | 63 74 6f 72 2c 20 26 75 |TypeUpVe|ctor, &u|
|00003080| 70 56 65 63 74 6f 72 29 | 20 3d 3d 20 6b 51 33 46 |pVector)| == kQ3F|
|00003090| 61 69 6c 75 72 65 20 29 | 20 7b 0d 09 09 09 73 74 |ailure )| {....st|
|000030a0| 61 74 75 73 20 3d 20 6b | 51 33 46 61 69 6c 75 72 |atus = k|Q3Failur|
|000030b0| 65 3b 0d 09 09 09 67 6f | 74 6f 20 63 6c 65 61 6e |e;....go|to clean|
|000030c0| 45 78 69 74 3b 0d 09 09 | 7d 0d 09 7d 20 65 6c 73 |Exit;...|}..} els|
|000030d0| 65 20 0d 09 09 73 74 61 | 74 75 73 20 3d 20 6b 51 |e ...sta|tus = kQ|
|000030e0| 33 46 61 69 6c 75 72 65 | 3b 0d 09 09 0d 63 6c 65 |3Failure|;....cle|
|000030f0| 61 6e 45 78 69 74 3a 0d | 09 69 66 28 20 73 65 74 |anExit:.|.if( set|
|00003100| 20 29 0d 09 09 51 33 4f | 62 6a 65 63 74 5f 44 69 | )...Q3O|bject_Di|
|00003110| 73 70 6f 73 65 28 73 65 | 74 29 3b 0d 09 72 65 74 |spose(se|t);..ret|
|00003120| 75 72 6e 20 73 74 61 74 | 75 73 3b 0d 7d 0d 0d 2f |urn stat|us;.}../|
|00003130| 2a 0d 20 2a 20 55 70 56 | 65 63 74 6f 72 41 74 74 |*. * UpV|ectorAtt|
|00003140| 72 69 62 75 74 65 5f 52 | 65 61 64 44 61 74 61 0d |ribute_R|eadData.|
|00003150| 20 2a 2f 0d 73 74 61 74 | 69 63 20 54 51 33 53 74 | */.stat|ic TQ3St|
|00003160| 61 74 75 73 20 55 70 56 | 65 63 74 6f 72 41 74 74 |atus UpV|ectorAtt|
|00003170| 72 69 62 75 74 65 5f 52 | 65 61 64 44 61 74 61 28 |ribute_R|eadData(|
|00003180| 0d 09 54 51 33 53 65 74 | 4f 62 6a 65 63 74 09 09 |..TQ3Set|Object..|
|00003190| 09 61 74 74 72 69 62 75 | 74 65 53 65 74 2c 0d 09 |.attribu|teSet,..|
|000031a0| 54 51 33 46 69 6c 65 4f | 62 6a 65 63 74 09 09 09 |TQ3FileO|bject...|
|000031b0| 66 69 6c 65 29 0d 7b 0d | 09 54 51 33 56 65 63 74 |file).{.|.TQ3Vect|
|000031c0| 6f 72 33 44 09 09 75 70 | 56 65 63 74 6f 72 3b 0d |or3D..up|Vector;.|
|000031d0| 09 0d 09 69 66 28 20 51 | 33 56 65 63 74 6f 72 33 |...if( Q|3Vector3|
|000031e0| 44 5f 52 65 61 64 28 26 | 75 70 56 65 63 74 6f 72 |D_Read(&|upVector|
|000031f0| 2c 20 66 69 6c 65 29 20 | 3d 3d 20 6b 51 33 46 61 |, file) |== kQ3Fa|
|00003200| 69 6c 75 72 65 29 20 7b | 0d 09 09 72 65 74 75 72 |ilure) {|...retur|
|00003210| 6e 20 6b 51 33 46 61 69 | 6c 75 72 65 3b 0d 09 7d |n kQ3Fai|lure;..}|
|00003220| 0d 09 09 0d 09 72 65 74 | 75 72 6e 20 51 33 53 65 |.....ret|urn Q3Se|
|00003230| 74 5f 41 64 64 28 61 74 | 74 72 69 62 75 74 65 53 |t_Add(at|tributeS|
|00003240| 65 74 2c 20 6b 45 6c 65 | 6d 65 6e 74 54 79 70 65 |et, kEle|mentType|
|00003250| 55 70 56 65 63 74 6f 72 | 2c 20 26 75 70 56 65 63 |UpVector|, &upVec|
|00003260| 74 6f 72 29 3b 0d 7d 0d | 0d 2f 2a 0d 20 2a 20 55 |tor);.}.|./*. * U|
|00003270| 70 56 65 63 74 6f 72 41 | 74 74 72 69 62 75 74 65 |pVectorA|ttribute|
|00003280| 5f 4d 65 74 61 48 61 6e | 64 6c 65 72 0d 20 2a 2f |_MetaHan|dler. */|
|00003290| 0d 73 74 61 74 69 63 20 | 54 51 33 46 75 6e 63 74 |.static |TQ3Funct|
|000032a0| 69 6f 6e 50 6f 69 6e 74 | 65 72 20 55 70 56 65 63 |ionPoint|er UpVec|
|000032b0| 74 6f 72 41 74 74 72 69 | 62 75 74 65 5f 4d 65 74 |torAttri|bute_Met|
|000032c0| 61 48 61 6e 64 6c 65 72 | 28 0d 09 54 51 33 4d 65 |aHandler|(..TQ3Me|
|000032d0| 74 68 6f 64 54 79 70 65 | 09 09 6d 65 74 68 6f 64 |thodType|..method|
|000032e0| 54 79 70 65 29 0d 7b 0d | 09 73 77 69 74 63 68 20 |Type).{.|.switch |
|000032f0| 28 6d 65 74 68 6f 64 54 | 79 70 65 29 0d 09 7b 0d |(methodT|ype)..{.|
|00003300| 09 09 63 61 73 65 20 6b | 51 33 4d 65 74 68 6f 64 |..case k|Q3Method|
|00003310| 54 79 70 65 4f 62 6a 65 | 63 74 54 72 61 76 65 72 |TypeObje|ctTraver|
|00003320| 73 65 3a 0d 09 09 09 72 | 65 74 75 72 6e 20 28 54 |se:....r|eturn (T|
|00003330| 51 33 46 75 6e 63 74 69 | 6f 6e 50 6f 69 6e 74 65 |Q3Functi|onPointe|
|00003340| 72 29 20 76 65 63 74 6f | 72 5f 54 72 61 76 65 72 |r) vecto|r_Traver|
|00003350| 73 65 3b 0d 09 09 63 61 | 73 65 20 6b 51 33 4d 65 |se;...ca|se kQ3Me|
|00003360| 74 68 6f 64 54 79 70 65 | 4f 62 6a 65 63 74 57 72 |thodType|ObjectWr|
|00003370| 69 74 65 3a 0d 09 09 09 | 72 65 74 75 72 6e 20 28 |ite:....|return (|
|00003380| 54 51 33 46 75 6e 63 74 | 69 6f 6e 50 6f 69 6e 74 |TQ3Funct|ionPoint|
|00003390| 65 72 29 20 76 65 63 74 | 6f 72 5f 57 72 69 74 65 |er) vect|or_Write|
|000033a0| 3b 0d 09 09 63 61 73 65 | 20 6b 51 33 4d 65 74 68 |;...case| kQ3Meth|
|000033b0| 6f 64 54 79 70 65 4f 62 | 6a 65 63 74 52 65 61 64 |odTypeOb|jectRead|
|000033c0| 44 61 74 61 3a 0d 09 09 | 09 72 65 74 75 72 6e 20 |Data:...|.return |
|000033d0| 28 54 51 33 46 75 6e 63 | 74 69 6f 6e 50 6f 69 6e |(TQ3Func|tionPoin|
|000033e0| 74 65 72 29 20 55 70 56 | 65 63 74 6f 72 41 74 74 |ter) UpV|ectorAtt|
|000033f0| 72 69 62 75 74 65 5f 52 | 65 61 64 44 61 74 61 3b |ribute_R|eadData;|
|00003400| 0d 09 09 63 61 73 65 20 | 6b 51 33 4d 65 74 68 6f |...case |kQ3Metho|
|00003410| 64 54 79 70 65 45 6c 65 | 6d 65 6e 74 43 6f 70 79 |dTypeEle|mentCopy|
|00003420| 41 64 64 3a 0d 09 09 63 | 61 73 65 20 6b 51 33 4d |Add:...c|ase kQ3M|
|00003430| 65 74 68 6f 64 54 79 70 | 65 45 6c 65 6d 65 6e 74 |ethodTyp|eElement|
|00003440| 43 6f 70 79 47 65 74 3a | 0d 09 09 63 61 73 65 20 |CopyGet:|...case |
|00003450| 6b 51 33 4d 65 74 68 6f | 64 54 79 70 65 45 6c 65 |kQ3Metho|dTypeEle|
|00003460| 6d 65 6e 74 43 6f 70 79 | 44 75 70 6c 69 63 61 74 |mentCopy|Duplicat|
|00003470| 65 3a 0d 09 09 09 72 65 | 74 75 72 6e 20 28 54 51 |e:....re|turn (TQ|
|00003480| 33 46 75 6e 63 74 69 6f | 6e 50 6f 69 6e 74 65 72 |3Functio|nPointer|
|00003490| 29 20 76 65 63 74 6f 72 | 5f 43 6f 70 79 41 64 64 |) vector|_CopyAdd|
|000034a0| 3b 0d 09 09 63 61 73 65 | 20 6b 51 33 4d 65 74 68 |;...case| kQ3Meth|
|000034b0| 6f 64 54 79 70 65 45 6c | 65 6d 65 6e 74 43 6f 70 |odTypeEl|ementCop|
|000034c0| 79 52 65 70 6c 61 63 65 | 3a 0d 09 09 09 72 65 74 |yReplace|:....ret|
|000034d0| 75 72 6e 20 28 54 51 33 | 46 75 6e 63 74 69 6f 6e |urn (TQ3|Function|
|000034e0| 50 6f 69 6e 74 65 72 29 | 20 76 65 63 74 6f 72 5f |Pointer)| vector_|
|000034f0| 43 6f 70 79 52 65 70 6c | 61 63 65 3b 0d 09 09 64 |CopyRepl|ace;...d|
|00003500| 65 66 61 75 6c 74 3a 0d | 09 09 09 72 65 74 75 72 |efault:.|...retur|
|00003510| 6e 20 28 54 51 33 46 75 | 6e 63 74 69 6f 6e 50 6f |n (TQ3Fu|nctionPo|
|00003520| 69 6e 74 65 72 29 20 4e | 55 4c 4c 3b 0d 09 7d 0d |inter) N|ULL;..}.|
|00003530| 7d 0d 0d 2f 2a 0d 20 2a | 20 55 70 56 65 63 74 6f |}../*. *| UpVecto|
|00003540| 72 41 74 74 72 69 62 75 | 74 65 5f 52 65 67 69 73 |rAttribu|te_Regis|
|00003550| 74 65 72 0d 20 2a 2f 0d | 54 51 33 53 74 61 74 75 |ter. */.|TQ3Statu|
|00003560| 73 20 55 70 56 65 63 74 | 6f 72 41 74 74 72 69 62 |s UpVect|orAttrib|
|00003570| 75 74 65 5f 52 65 67 69 | 73 74 65 72 28 0d 09 76 |ute_Regi|ster(..v|
|00003580| 6f 69 64 29 0d 7b 0d 09 | 67 55 70 56 65 63 74 6f |oid).{..|gUpVecto|
|00003590| 72 41 74 74 72 69 62 75 | 74 65 43 6c 61 73 73 20 |rAttribu|teClass |
|000035a0| 3d 20 0d 09 09 51 33 45 | 6c 65 6d 65 6e 74 43 6c |= ...Q3E|lementCl|
|000035b0| 61 73 73 5f 52 65 67 69 | 73 74 65 72 28 0d 09 09 |ass_Regi|ster(...|
|000035c0| 09 6b 45 6c 65 6d 65 6e | 74 54 79 70 65 55 70 56 |.kElemen|tTypeUpV|
|000035d0| 65 63 74 6f 72 2c 0d 09 | 09 09 22 55 70 56 65 63 |ector,..|.."UpVec|
|000035e0| 74 6f 72 22 2c 0d 09 09 | 09 73 69 7a 65 6f 66 28 |tor",...|.sizeof(|
|000035f0| 54 51 33 56 65 63 74 6f | 72 33 44 29 2c 0d 09 09 |TQ3Vecto|r3D),...|
|00003600| 09 55 70 56 65 63 74 6f | 72 41 74 74 72 69 62 75 |.UpVecto|rAttribu|
|00003610| 74 65 5f 4d 65 74 61 48 | 61 6e 64 6c 65 72 29 3b |te_MetaH|andler);|
|00003620| 0d 0d 09 72 65 74 75 72 | 6e 20 28 67 55 70 56 65 |...retur|n (gUpVe|
|00003630| 63 74 6f 72 41 74 74 72 | 69 62 75 74 65 43 6c 61 |ctorAttr|ibuteCla|
|00003640| 73 73 20 3d 3d 20 4e 55 | 4c 4c 20 3f 20 6b 51 33 |ss == NU|LL ? kQ3|
|00003650| 46 61 69 6c 75 72 65 20 | 3a 20 6b 51 33 53 75 63 |Failure |: kQ3Suc|
|00003660| 63 65 73 73 29 3b 0d 7d | 0d 0d 2f 2a 0d 20 2a 20 |cess);.}|../*. * |
|00003670| 55 70 56 65 63 74 6f 72 | 41 74 74 72 69 62 75 74 |UpVector|Attribut|
|00003680| 65 5f 55 6e 72 65 67 69 | 73 74 65 72 0d 20 2a 2f |e_Unregi|ster. */|
|00003690| 0d 54 51 33 53 74 61 74 | 75 73 20 55 70 56 65 63 |.TQ3Stat|us UpVec|
|000036a0| 74 6f 72 41 74 74 72 69 | 62 75 74 65 5f 55 6e 72 |torAttri|bute_Unr|
|000036b0| 65 67 69 73 74 65 72 28 | 0d 09 76 6f 69 64 29 0d |egister(|..void).|
|000036c0| 7b 0d 09 69 66 20 28 20 | 67 55 70 56 65 63 74 6f |{..if ( |gUpVecto|
|000036d0| 72 41 74 74 72 69 62 75 | 74 65 43 6c 61 73 73 20 |rAttribu|teClass |
|000036e0| 21 3d 20 4e 55 4c 4c 20 | 29 0d 09 09 72 65 74 75 |!= NULL |)...retu|
|000036f0| 72 6e 09 51 33 4f 62 6a | 65 63 74 43 6c 61 73 73 |rn.Q3Obj|ectClass|
|00003700| 5f 55 6e 72 65 67 69 73 | 74 65 72 28 67 55 70 56 |_Unregis|ter(gUpV|
|00003710| 65 63 74 6f 72 41 74 74 | 72 69 62 75 74 65 43 6c |ectorAtt|ributeCl|
|00003720| 61 73 73 29 3b 0d 09 09 | 0d 09 72 65 74 75 72 6e |ass);...|..return|
|00003730| 20 6b 51 33 46 61 69 6c | 75 72 65 3b 0d 7d 0d 0d | kQ3Fail|ure;.}..|
|00003740| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00003750| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003760| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003770| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003780| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003790| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0d |********|*******.|
|000037a0| 20 2a 0d 20 2a 09 09 09 | 09 09 09 09 09 46 4f 52 | *. *...|.....FOR|
|000037b0| 57 41 52 44 20 44 49 52 | 45 43 54 49 4f 4e 20 63 |WARD DIR|ECTION c|
|000037c0| 75 73 74 6f 6d 20 61 74 | 74 72 69 62 75 74 65 0d |ustom at|tribute.|
|000037d0| 20 2a 0d 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *. ****|********|
|000037e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000037f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003800| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003810| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003820| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003830| 2a 2a 2f 0d 2f 2a 0d 20 | 2a 20 55 74 69 6c 69 74 |**/./*. |* Utilit|
|00003840| 79 20 66 75 6e 63 74 69 | 6f 6e 20 74 6f 20 61 64 |y functi|on to ad|
|00003850| 64 20 61 20 6e 61 6d 65 | 20 6f 6e 20 61 20 67 72 |d a name| on a gr|
|00003860| 6f 75 70 2c 20 67 65 6f | 6d 65 74 72 79 20 6f 62 |oup, geo|metry ob|
|00003870| 6a 65 63 74 2c 20 6f 72 | 20 61 74 74 72 69 62 75 |ject, or| attribu|
|00003880| 74 65 20 73 65 74 0d 20 | 2a 2f 0d 0d 54 51 33 53 |te set. |*/..TQ3S|
|00003890| 74 61 74 75 73 09 53 65 | 74 46 6f 72 77 61 72 64 |tatus.Se|tForward|
|000038a0| 44 69 72 65 63 74 69 6f | 6e 28 54 51 33 4f 62 6a |Directio|n(TQ3Obj|
|000038b0| 65 63 74 20 6f 62 6a 65 | 63 74 2c 20 54 51 33 56 |ect obje|ct, TQ3V|
|000038c0| 65 63 74 6f 72 33 44 20 | 2a 66 6f 72 77 61 72 64 |ector3D |*forward|
|000038d0| 44 69 72 65 63 74 69 6f | 6e 29 0d 7b 0d 09 54 51 |Directio|n).{..TQ|
|000038e0| 33 41 74 74 72 69 62 75 | 74 65 53 65 74 09 73 65 |3Attribu|teSet.se|
|000038f0| 74 20 3d 20 4e 55 4c 4c | 3b 0d 09 54 51 33 53 74 |t = NULL|;..TQ3St|
|00003900| 61 74 75 73 09 09 73 74 | 61 74 75 73 20 3d 20 6b |atus..st|atus = k|
|00003910| 51 33 53 75 63 63 65 73 | 73 3b 0d 09 0d 09 69 66 |Q3Succes|s;....if|
|00003920| 28 20 51 33 4f 62 6a 65 | 63 74 5f 49 73 54 79 70 |( Q3Obje|ct_IsTyp|
|00003930| 65 28 6f 62 6a 65 63 74 | 2c 20 6b 51 33 53 68 61 |e(object|, kQ3Sha|
|00003940| 70 65 54 79 70 65 47 65 | 6f 6d 65 74 72 79 29 20 |peTypeGe|ometry) |
|00003950| 3d 3d 20 6b 51 33 54 72 | 75 65 20 29 20 7b 0d 09 |== kQ3Tr|ue ) {..|
|00003960| 09 51 33 47 65 6f 6d 65 | 74 72 79 5f 47 65 74 41 |.Q3Geome|try_GetA|
|00003970| 74 74 72 69 62 75 74 65 | 53 65 74 28 6f 62 6a 65 |ttribute|Set(obje|
|00003980| 63 74 2c 20 26 73 65 74 | 29 3b 0d 09 09 0d 09 09 |ct, &set|);......|
|00003990| 69 66 28 20 73 65 74 20 | 3d 3d 20 4e 55 4c 4c 20 |if( set |== NULL |
|000039a0| 29 20 7b 0d 09 09 09 73 | 65 74 20 3d 20 51 33 41 |) {....s|et = Q3A|
|000039b0| 74 74 72 69 62 75 74 65 | 53 65 74 5f 4e 65 77 28 |ttribute|Set_New(|
|000039c0| 29 3b 0d 09 09 09 69 66 | 28 20 73 65 74 20 3d 3d |);....if|( set ==|
|000039d0| 20 4e 55 4c 4c 20 29 20 | 7b 0d 09 09 09 09 73 74 | NULL ) |{.....st|
|000039e0| 61 74 75 73 20 3d 20 6b | 51 33 46 61 69 6c 75 72 |atus = k|Q3Failur|
|000039f0| 65 3b 0d 09 09 09 09 67 | 6f 74 6f 20 63 6c 65 61 |e;.....g|oto clea|
|00003a00| 6e 45 78 69 74 3b 0d 09 | 09 09 7d 0d 09 09 09 51 |nExit;..|..}....Q|
|00003a10| 33 47 65 6f 6d 65 74 72 | 79 5f 53 65 74 41 74 74 |3Geometr|y_SetAtt|
|00003a20| 72 69 62 75 74 65 53 65 | 74 28 6f 62 6a 65 63 74 |ributeSe|t(object|
|00003a30| 2c 20 73 65 74 29 3b 0d | 09 09 7d 0d 09 7d 20 65 |, set);.|..}..} e|
|00003a40| 6c 73 65 20 69 66 28 20 | 51 33 4f 62 6a 65 63 74 |lse if( |Q3Object|
|00003a50| 5f 49 73 54 79 70 65 28 | 6f 62 6a 65 63 74 2c 20 |_IsType(|object, |
|00003a60| 6b 51 33 53 68 61 70 65 | 54 79 70 65 47 72 6f 75 |kQ3Shape|TypeGrou|
|00003a70| 70 29 20 3d 3d 20 6b 51 | 33 54 72 75 65 20 29 7b |p) == kQ|3True ){|
|00003a80| 0d 09 09 51 33 53 68 61 | 70 65 5f 47 65 74 53 65 |...Q3Sha|pe_GetSe|
|00003a90| 74 28 6f 62 6a 65 63 74 | 2c 20 26 73 65 74 29 3b |t(object|, &set);|
|00003aa0| 0d 09 09 0d 09 09 69 66 | 28 20 73 65 74 20 3d 3d |......if|( set ==|
|00003ab0| 20 4e 55 4c 4c 20 29 20 | 7b 0d 09 09 09 73 65 74 | NULL ) |{....set|
|00003ac0| 20 3d 20 51 33 53 65 74 | 5f 4e 65 77 28 29 3b 0d | = Q3Set|_New();.|
|00003ad0| 09 09 09 69 66 28 20 73 | 65 74 20 3d 3d 20 4e 55 |...if( s|et == NU|
|00003ae0| 4c 4c 20 29 20 7b 0d 09 | 09 09 09 73 74 61 74 75 |LL ) {..|...statu|
|00003af0| 73 20 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 3b 0d |s = kQ3F|ailure;.|
|00003b00| 09 09 09 09 67 6f 74 6f | 20 63 6c 65 61 6e 45 78 |....goto| cleanEx|
|00003b10| 69 74 3b 0d 09 09 09 7d | 0d 09 09 09 51 33 53 68 |it;....}|....Q3Sh|
|00003b20| 61 70 65 5f 53 65 74 53 | 65 74 28 6f 62 6a 65 63 |ape_SetS|et(objec|
|00003b30| 74 2c 20 73 65 74 29 3b | 0d 09 09 7d 0d 09 7d 0d |t, set);|...}..}.|
|00003b40| 09 09 09 0d 09 69 66 28 | 20 73 65 74 20 29 20 7b |.....if(| set ) {|
|00003b50| 0d 09 09 69 66 28 20 51 | 33 53 65 74 5f 41 64 64 |...if( Q|3Set_Add|
|00003b60| 28 73 65 74 2c 20 6b 45 | 6c 65 6d 65 6e 74 54 79 |(set, kE|lementTy|
|00003b70| 70 65 46 6f 72 77 61 72 | 64 44 69 72 65 63 74 69 |peForwar|dDirecti|
|00003b80| 6f 6e 2c 20 26 66 6f 72 | 77 61 72 64 44 69 72 65 |on, &for|wardDire|
|00003b90| 63 74 69 6f 6e 29 20 3d | 3d 20 6b 51 33 46 61 69 |ction) =|= kQ3Fai|
|00003ba0| 6c 75 72 65 20 29 20 7b | 0d 09 09 09 73 74 61 74 |lure ) {|....stat|
|00003bb0| 75 73 20 3d 20 6b 51 33 | 46 61 69 6c 75 72 65 3b |us = kQ3|Failure;|
|00003bc0| 0d 09 09 09 67 6f 74 6f | 20 63 6c 65 61 6e 45 78 |....goto| cleanEx|
|00003bd0| 69 74 3b 0d 09 09 7d 0d | 09 7d 20 65 6c 73 65 20 |it;...}.|.} else |
|00003be0| 69 66 28 20 51 33 4f 62 | 6a 65 63 74 5f 49 73 54 |if( Q3Ob|ject_IsT|
|00003bf0| 79 70 65 28 6f 62 6a 65 | 63 74 2c 20 6b 51 33 53 |ype(obje|ct, kQ3S|
|00003c00| 68 61 72 65 64 54 79 70 | 65 53 65 74 29 20 3d 3d |haredTyp|eSet) ==|
|00003c10| 20 6b 51 33 54 72 75 65 | 20 29 20 7b 0d 09 09 69 | kQ3True| ) {...i|
|00003c20| 66 28 20 51 33 41 74 74 | 72 69 62 75 74 65 53 65 |f( Q3Att|ributeSe|
|00003c30| 74 5f 41 64 64 28 6f 62 | 6a 65 63 74 2c 20 6b 45 |t_Add(ob|ject, kE|
|00003c40| 6c 65 6d 65 6e 74 54 79 | 70 65 46 6f 72 77 61 72 |lementTy|peForwar|
|00003c50| 64 44 69 72 65 63 74 69 | 6f 6e 2c 20 26 66 6f 72 |dDirecti|on, &for|
|00003c60| 77 61 72 64 44 69 72 65 | 63 74 69 6f 6e 29 20 3d |wardDire|ction) =|
|00003c70| 3d 20 6b 51 33 46 61 69 | 6c 75 72 65 20 29 20 7b |= kQ3Fai|lure ) {|
|00003c80| 0d 09 09 09 73 74 61 74 | 75 73 20 3d 20 6b 51 33 |....stat|us = kQ3|
|00003c90| 46 61 69 6c 75 72 65 3b | 0d 09 09 09 67 6f 74 6f |Failure;|....goto|
|00003ca0| 20 63 6c 65 61 6e 45 78 | 69 74 3b 0d 09 09 7d 0d | cleanEx|it;...}.|
|00003cb0| 09 7d 20 65 6c 73 65 20 | 0d 09 09 73 74 61 74 75 |.} else |...statu|
|00003cc0| 73 20 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 3b 0d |s = kQ3F|ailure;.|
|00003cd0| 09 09 0d 63 6c 65 61 6e | 45 78 69 74 3a 0d 09 69 |...clean|Exit:..i|
|00003ce0| 66 28 20 73 65 74 20 29 | 0d 09 09 51 33 4f 62 6a |f( set )|...Q3Obj|
|00003cf0| 65 63 74 5f 44 69 73 70 | 6f 73 65 28 73 65 74 29 |ect_Disp|ose(set)|
|00003d00| 3b 0d 09 72 65 74 75 72 | 6e 20 73 74 61 74 75 73 |;..retur|n status|
|00003d10| 3b 0d 7d 09 09 09 0d 0d | 2f 2a 0d 20 2a 20 46 6f |;.}.....|/*. * Fo|
|00003d20| 72 77 61 72 64 44 69 72 | 65 63 74 69 6f 6e 41 74 |rwardDir|ectionAt|
|00003d30| 74 72 69 62 75 74 65 5f | 52 65 61 64 44 61 74 61 |tribute_|ReadData|
|00003d40| 0d 20 2a 2f 0d 73 74 61 | 74 69 63 20 54 51 33 53 |. */.sta|tic TQ3S|
|00003d50| 74 61 74 75 73 20 46 6f | 72 77 61 72 64 44 69 72 |tatus Fo|rwardDir|
|00003d60| 65 63 74 69 6f 6e 41 74 | 74 72 69 62 75 74 65 5f |ectionAt|tribute_|
|00003d70| 52 65 61 64 44 61 74 61 | 28 0d 09 54 51 33 53 65 |ReadData|(..TQ3Se|
|00003d80| 74 4f 62 6a 65 63 74 09 | 09 09 61 74 74 72 69 62 |tObject.|..attrib|
|00003d90| 75 74 65 53 65 74 2c 0d | 09 54 51 33 46 69 6c 65 |uteSet,.|.TQ3File|
|00003da0| 4f 62 6a 65 63 74 09 09 | 09 66 69 6c 65 29 0d 7b |Object..|.file).{|
|00003db0| 0d 09 54 51 33 56 65 63 | 74 6f 72 33 44 09 09 66 |..TQ3Vec|tor3D..f|
|00003dc0| 6f 72 77 61 72 64 44 69 | 72 65 63 74 69 6f 6e 3b |orwardDi|rection;|
|00003dd0| 0d 09 0d 09 69 66 28 20 | 51 33 56 65 63 74 6f 72 |....if( |Q3Vector|
|00003de0| 33 44 5f 52 65 61 64 28 | 26 66 6f 72 77 61 72 64 |3D_Read(|&forward|
|00003df0| 44 69 72 65 63 74 69 6f | 6e 2c 20 66 69 6c 65 29 |Directio|n, file)|
|00003e00| 20 3d 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 29 20 | == kQ3F|ailure) |
|00003e10| 7b 0d 09 09 72 65 74 75 | 72 6e 20 6b 51 33 46 61 |{...retu|rn kQ3Fa|
|00003e20| 69 6c 75 72 65 3b 0d 09 | 7d 0d 09 09 0d 09 72 65 |ilure;..|}.....re|
|00003e30| 74 75 72 6e 20 51 33 53 | 65 74 5f 41 64 64 28 61 |turn Q3S|et_Add(a|
|00003e40| 74 74 72 69 62 75 74 65 | 53 65 74 2c 20 6b 45 6c |ttribute|Set, kEl|
|00003e50| 65 6d 65 6e 74 54 79 70 | 65 46 6f 72 77 61 72 64 |ementTyp|eForward|
|00003e60| 44 69 72 65 63 74 69 6f | 6e 2c 20 26 66 6f 72 77 |Directio|n, &forw|
|00003e70| 61 72 64 44 69 72 65 63 | 74 69 6f 6e 29 3b 0d 7d |ardDirec|tion);.}|
|00003e80| 0d 0d 2f 2a 0d 20 2a 20 | 46 6f 72 77 61 72 64 44 |../*. * |ForwardD|
|00003e90| 69 72 65 63 74 69 6f 6e | 41 74 74 72 69 62 75 74 |irection|Attribut|
|00003ea0| 65 5f 4d 65 74 61 48 61 | 6e 64 6c 65 72 0d 20 2a |e_MetaHa|ndler. *|
|00003eb0| 2f 0d 73 74 61 74 69 63 | 20 54 51 33 46 75 6e 63 |/.static| TQ3Func|
|00003ec0| 74 69 6f 6e 50 6f 69 6e | 74 65 72 20 46 6f 72 77 |tionPoin|ter Forw|
|00003ed0| 61 72 64 44 69 72 65 63 | 74 69 6f 6e 41 74 74 72 |ardDirec|tionAttr|
|00003ee0| 69 62 75 74 65 5f 4d 65 | 74 61 48 61 6e 64 6c 65 |ibute_Me|taHandle|
|00003ef0| 72 28 0d 09 54 51 33 4d | 65 74 68 6f 64 54 79 70 |r(..TQ3M|ethodTyp|
|00003f00| 65 09 09 6d 65 74 68 6f | 64 54 79 70 65 29 0d 7b |e..metho|dType).{|
|00003f10| 0d 09 73 77 69 74 63 68 | 20 28 6d 65 74 68 6f 64 |..switch| (method|
|00003f20| 54 79 70 65 29 0d 09 7b | 0d 09 09 63 61 73 65 20 |Type)..{|...case |
|00003f30| 6b 51 33 4d 65 74 68 6f | 64 54 79 70 65 4f 62 6a |kQ3Metho|dTypeObj|
|00003f40| 65 63 74 54 72 61 76 65 | 72 73 65 3a 0d 09 09 09 |ectTrave|rse:....|
|00003f50| 72 65 74 75 72 6e 20 28 | 54 51 33 46 75 6e 63 74 |return (|TQ3Funct|
|00003f60| 69 6f 6e 50 6f 69 6e 74 | 65 72 29 20 76 65 63 74 |ionPoint|er) vect|
|00003f70| 6f 72 5f 54 72 61 76 65 | 72 73 65 3b 0d 09 09 63 |or_Trave|rse;...c|
|00003f80| 61 73 65 20 6b 51 33 4d | 65 74 68 6f 64 54 79 70 |ase kQ3M|ethodTyp|
|00003f90| 65 4f 62 6a 65 63 74 57 | 72 69 74 65 3a 0d 09 09 |eObjectW|rite:...|
|00003fa0| 09 72 65 74 75 72 6e 20 | 28 54 51 33 46 75 6e 63 |.return |(TQ3Func|
|00003fb0| 74 69 6f 6e 50 6f 69 6e | 74 65 72 29 20 76 65 63 |tionPoin|ter) vec|
|00003fc0| 74 6f 72 5f 57 72 69 74 | 65 3b 0d 09 09 63 61 73 |tor_Writ|e;...cas|
|00003fd0| 65 20 6b 51 33 4d 65 74 | 68 6f 64 54 79 70 65 4f |e kQ3Met|hodTypeO|
|00003fe0| 62 6a 65 63 74 52 65 61 | 64 44 61 74 61 3a 0d 09 |bjectRea|dData:..|
|00003ff0| 09 09 72 65 74 75 72 6e | 20 28 54 51 33 46 75 6e |..return| (TQ3Fun|
|00004000| 63 74 69 6f 6e 50 6f 69 | 6e 74 65 72 29 20 46 6f |ctionPoi|nter) Fo|
|00004010| 72 77 61 72 64 44 69 72 | 65 63 74 69 6f 6e 41 74 |rwardDir|ectionAt|
|00004020| 74 72 69 62 75 74 65 5f | 52 65 61 64 44 61 74 61 |tribute_|ReadData|
|00004030| 3b 0d 09 09 64 65 66 61 | 75 6c 74 3a 0d 09 09 09 |;...defa|ult:....|
|00004040| 72 65 74 75 72 6e 20 28 | 54 51 33 46 75 6e 63 74 |return (|TQ3Funct|
|00004050| 69 6f 6e 50 6f 69 6e 74 | 65 72 29 20 4e 55 4c 4c |ionPoint|er) NULL|
|00004060| 3b 0d 09 7d 0d 7d 0d 0d | 2f 2a 0d 20 2a 20 46 6f |;..}.}..|/*. * Fo|
|00004070| 72 77 61 72 64 44 69 72 | 65 63 74 69 6f 6e 41 74 |rwardDir|ectionAt|
|00004080| 74 72 69 62 75 74 65 5f | 52 65 67 69 73 74 65 72 |tribute_|Register|
|00004090| 0d 20 2a 2f 0d 54 51 33 | 53 74 61 74 75 73 20 46 |. */.TQ3|Status F|
|000040a0| 6f 72 77 61 72 64 44 69 | 72 65 63 74 69 6f 6e 41 |orwardDi|rectionA|
|000040b0| 74 74 72 69 62 75 74 65 | 5f 52 65 67 69 73 74 65 |ttribute|_Registe|
|000040c0| 72 28 0d 09 76 6f 69 64 | 29 0d 7b 0d 09 67 55 70 |r(..void|).{..gUp|
|000040d0| 56 65 63 74 6f 72 41 74 | 74 72 69 62 75 74 65 43 |VectorAt|tributeC|
|000040e0| 6c 61 73 73 20 3d 20 0d | 09 09 51 33 45 6c 65 6d |lass = .|..Q3Elem|
|000040f0| 65 6e 74 43 6c 61 73 73 | 5f 52 65 67 69 73 74 65 |entClass|_Registe|
|00004100| 72 28 0d 09 09 09 6b 45 | 6c 65 6d 65 6e 74 54 79 |r(....kE|lementTy|
|00004110| 70 65 46 6f 72 77 61 72 | 64 44 69 72 65 63 74 69 |peForwar|dDirecti|
|00004120| 6f 6e 2c 0d 09 09 09 22 | 46 6f 72 77 61 72 64 44 |on,...."|ForwardD|
|00004130| 69 72 65 63 74 69 6f 6e | 22 2c 0d 09 09 09 73 69 |irection|",....si|
|00004140| 7a 65 6f 66 28 54 51 33 | 56 65 63 74 6f 72 33 44 |zeof(TQ3|Vector3D|
|00004150| 29 2c 0d 09 09 09 46 6f | 72 77 61 72 64 44 69 72 |),....Fo|rwardDir|
|00004160| 65 63 74 69 6f 6e 41 74 | 74 72 69 62 75 74 65 5f |ectionAt|tribute_|
|00004170| 4d 65 74 61 48 61 6e 64 | 6c 65 72 29 3b 0d 0d 09 |MetaHand|ler);...|
|00004180| 72 65 74 75 72 6e 20 28 | 67 46 6f 72 77 61 72 64 |return (|gForward|
|00004190| 56 65 63 74 6f 72 41 74 | 74 72 69 62 75 74 65 43 |VectorAt|tributeC|
|000041a0| 6c 61 73 73 20 3d 3d 20 | 4e 55 4c 4c 20 3f 20 6b |lass == |NULL ? k|
|000041b0| 51 33 46 61 69 6c 75 72 | 65 20 3a 20 6b 51 33 53 |Q3Failur|e : kQ3S|
|000041c0| 75 63 63 65 73 73 29 3b | 0d 7d 0d 0d 2f 2a 0d 20 |uccess);|.}../*. |
|000041d0| 2a 20 46 6f 72 77 61 72 | 64 44 69 72 65 63 74 69 |* Forwar|dDirecti|
|000041e0| 6f 6e 41 74 74 72 69 62 | 75 74 65 5f 55 6e 72 65 |onAttrib|ute_Unre|
|000041f0| 67 69 73 74 65 72 0d 20 | 2a 2f 0d 54 51 33 53 74 |gister. |*/.TQ3St|
|00004200| 61 74 75 73 20 46 6f 72 | 77 61 72 64 44 69 72 65 |atus For|wardDire|
|00004210| 63 74 69 6f 6e 41 74 74 | 72 69 62 75 74 65 5f 55 |ctionAtt|ribute_U|
|00004220| 6e 72 65 67 69 73 74 65 | 72 28 0d 09 76 6f 69 64 |nregiste|r(..void|
|00004230| 29 0d 7b 0d 09 69 66 20 | 28 20 67 46 6f 72 77 61 |).{..if |( gForwa|
|00004240| 72 64 56 65 63 74 6f 72 | 41 74 74 72 69 62 75 74 |rdVector|Attribut|
|00004250| 65 43 6c 61 73 73 20 21 | 3d 20 4e 55 4c 4c 20 29 |eClass !|= NULL )|
|00004260| 0d 09 09 72 65 74 75 72 | 6e 09 51 33 4f 62 6a 65 |...retur|n.Q3Obje|
|00004270| 63 74 43 6c 61 73 73 5f | 55 6e 72 65 67 69 73 74 |ctClass_|Unregist|
|00004280| 65 72 28 67 46 6f 72 77 | 61 72 64 56 65 63 74 6f |er(gForw|ardVecto|
|00004290| 72 41 74 74 72 69 62 75 | 74 65 43 6c 61 73 73 29 |rAttribu|teClass)|
|000042a0| 3b 0d 09 09 0d 09 72 65 | 74 75 72 6e 20 6b 51 33 |;.....re|turn kQ3|
|000042b0| 46 61 69 6c 75 72 65 3b | 0d 7d 0d 0d 2f 2a 2a 2a |Failure;|.}../***|
|000042c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000042d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000042e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000042f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004300| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004310| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 0d 2a 0d 2a |********|****.*.*|
|00004320| 09 57 33 41 6e 63 68 6f | 72 20 2d 20 54 68 69 73 |.W3Ancho|r - This|
|00004330| 20 61 6c 6c 6f 77 73 20 | 79 6f 75 20 61 74 74 61 | allows |you atta|
|00004340| 63 68 20 61 6e 20 55 52 | 4c 20 28 75 6e 69 76 65 |ch an UR|L (unive|
|00004350| 72 73 61 6c 20 72 65 73 | 6f 75 72 63 65 20 6c 6f |rsal res|ource lo|
|00004360| 63 61 74 6f 72 29 20 74 | 6f 20 61 6e 20 6f 62 6a |cator) t|o an obj|
|00004370| 65 63 74 20 6f 72 0d 2a | 09 67 72 6f 75 70 2e 20 |ect or.*|.group. |
|00004380| 20 49 66 20 74 68 69 73 | 20 61 74 74 72 69 62 75 | If this| attribu|
|00004390| 74 65 20 69 73 20 61 74 | 74 61 63 68 65 64 20 74 |te is at|tached t|
|000043a0| 6f 20 61 20 67 72 6f 75 | 70 2c 20 69 74 20 73 68 |o a grou|p, it sh|
|000043b0| 6f 75 6c 64 20 62 65 20 | 69 6e 74 65 72 70 72 65 |ould be |interpre|
|000043c0| 74 65 64 20 61 73 20 61 | 70 70 6c 79 69 6e 67 0d |ted as a|pplying.|
|000043d0| 2a 09 74 6f 20 61 6c 6c | 20 74 68 65 20 6f 62 6a |*.to all| the obj|
|000043e0| 65 63 74 73 20 69 6e 73 | 69 64 65 20 74 68 65 20 |ects ins|ide the |
|000043f0| 67 72 6f 75 70 2e 0d 2a | 0d 2a 0d 2a 2a 2a 2a 2a |group..*|.*.*****|
|00004400| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004410| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004420| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004430| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004440| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0d 0d 2f 2a 0d |********|**/../*.|
|00004460| 20 2a 20 55 74 69 6c 69 | 74 79 20 66 75 6e 63 74 | * Utili|ty funct|
|00004470| 69 6f 6e 20 74 6f 20 61 | 74 74 61 63 68 20 61 6e |ion to a|ttach an|
|00004480| 20 55 52 4c 20 72 65 66 | 65 72 65 6e 63 65 20 74 | URL ref|erence t|
|00004490| 6f 20 61 20 67 72 6f 75 | 70 20 6f 62 6a 65 63 74 |o a grou|p object|
|000044a0| 2c 20 67 65 6f 6d 65 74 | 72 79 20 6f 62 6a 65 63 |, geomet|ry objec|
|000044b0| 74 2c 20 6f 72 20 61 74 | 74 72 69 62 75 74 65 20 |t, or at|tribute |
|000044c0| 73 65 74 0d 20 2a 2f 0d | 0d 54 51 33 53 74 61 74 |set. */.|.TQ3Stat|
|000044d0| 75 73 09 53 65 74 57 33 | 41 6e 63 68 6f 72 28 54 |us.SetW3|Anchor(T|
|000044e0| 51 33 4f 62 6a 65 63 74 | 20 6f 62 6a 65 63 74 2c |Q3Object| object,|
|000044f0| 20 63 68 61 72 20 2a 75 | 72 6c 2c 20 63 68 61 72 | char *u|rl, char|
|00004500| 20 2a 64 65 73 63 72 69 | 70 74 69 6f 6e 2c 20 57 | *descri|ption, W|
|00004510| 33 41 6e 63 68 6f 72 4f | 70 74 69 6f 6e 73 20 6f |3AnchorO|ptions o|
|00004520| 70 74 69 6f 6e 73 29 0d | 7b 0d 09 54 51 33 53 74 |ptions).|{..TQ3St|
|00004530| 72 69 6e 67 4f 62 6a 65 | 63 74 09 09 73 74 72 69 |ringObje|ct..stri|
|00004540| 6e 67 20 3d 20 4e 55 4c | 4c 3b 0d 09 54 51 33 41 |ng = NUL|L;..TQ3A|
|00004550| 74 74 72 69 62 75 74 65 | 53 65 74 09 09 73 65 74 |ttribute|Set..set|
|00004560| 20 3d 20 4e 55 4c 4c 3b | 0d 09 54 51 33 53 74 61 | = NULL;|..TQ3Sta|
|00004570| 74 75 73 09 09 09 73 74 | 61 74 75 73 20 3d 20 6b |tus...st|atus = k|
|00004580| 51 33 53 75 63 63 65 73 | 73 3b 0d 09 57 33 41 6e |Q3Succes|s;..W3An|
|00004590| 63 68 6f 72 44 61 74 61 | 09 09 57 33 41 6e 63 68 |chorData|..W3Anch|
|000045a0| 6f 72 3b 0d 09 09 0d 09 | 73 74 72 69 6e 67 20 3d |or;.....|string =|
|000045b0| 20 51 33 43 53 74 72 69 | 6e 67 5f 4e 65 77 28 64 | Q3CStri|ng_New(d|
|000045c0| 65 73 63 72 69 70 74 69 | 6f 6e 29 3b 0d 09 0d 09 |escripti|on);....|
|000045d0| 69 66 28 20 73 74 72 69 | 6e 67 20 3d 3d 20 4e 55 |if( stri|ng == NU|
|000045e0| 4c 4c 29 20 7b 0d 09 09 | 73 74 61 74 75 73 20 3d |LL) {...|status =|
|000045f0| 20 6b 51 33 46 61 69 6c | 75 72 65 3b 0d 09 09 67 | kQ3Fail|ure;...g|
|00004600| 6f 74 6f 20 63 6c 65 61 | 6e 45 78 69 74 3b 0d 09 |oto clea|nExit;..|
|00004610| 7d 0d 09 0d 09 57 33 41 | 6e 63 68 6f 72 2e 64 65 |}....W3A|nchor.de|
|00004620| 73 63 72 69 70 74 69 6f | 6e 20 3d 20 73 74 72 69 |scriptio|n = stri|
|00004630| 6e 67 3b 0d 09 57 33 41 | 6e 63 68 6f 72 2e 75 72 |ng;..W3A|nchor.ur|
|00004640| 6c 20 3d 20 75 72 6c 3b | 0d 09 57 33 41 6e 63 68 |l = url;|..W3Anch|
|00004650| 6f 72 2e 6f 70 74 69 6f | 6e 73 20 3d 20 6f 70 74 |or.optio|ns = opt|
|00004660| 69 6f 6e 73 3b 0d 09 0d | 09 69 66 28 20 51 33 4f |ions;...|.if( Q3O|
|00004670| 62 6a 65 63 74 5f 49 73 | 54 79 70 65 28 6f 62 6a |bject_Is|Type(obj|
|00004680| 65 63 74 2c 20 6b 51 33 | 53 68 61 70 65 54 79 70 |ect, kQ3|ShapeTyp|
|00004690| 65 47 65 6f 6d 65 74 72 | 79 29 20 3d 3d 20 6b 51 |eGeometr|y) == kQ|
|000046a0| 33 54 72 75 65 20 29 20 | 7b 0d 09 09 0d 09 09 51 |3True ) |{......Q|
|000046b0| 33 47 65 6f 6d 65 74 72 | 79 5f 47 65 74 41 74 74 |3Geometr|y_GetAtt|
|000046c0| 72 69 62 75 74 65 53 65 | 74 28 6f 62 6a 65 63 74 |ributeSe|t(object|
|000046d0| 2c 20 26 73 65 74 29 3b | 0d 09 09 0d 09 09 69 66 |, &set);|......if|
|000046e0| 28 20 73 65 74 20 3d 3d | 20 4e 55 4c 4c 20 29 20 |( set ==| NULL ) |
|000046f0| 7b 0d 09 09 09 73 65 74 | 20 3d 20 51 33 41 74 74 |{....set| = Q3Att|
|00004700| 72 69 62 75 74 65 53 65 | 74 5f 4e 65 77 28 29 3b |ributeSe|t_New();|
|00004710| 0d 09 09 09 69 66 28 20 | 73 65 74 20 3d 3d 20 4e |....if( |set == N|
|00004720| 55 4c 4c 20 29 20 7b 0d | 09 09 09 09 73 74 61 74 |ULL ) {.|....stat|
|00004730| 75 73 20 3d 20 6b 51 33 | 46 61 69 6c 75 72 65 3b |us = kQ3|Failure;|
|00004740| 0d 09 09 09 09 67 6f 74 | 6f 20 63 6c 65 61 6e 45 |.....got|o cleanE|
|00004750| 78 69 74 3b 0d 09 09 09 | 7d 0d 09 09 09 51 33 47 |xit;....|}....Q3G|
|00004760| 65 6f 6d 65 74 72 79 5f | 53 65 74 41 74 74 72 69 |eometry_|SetAttri|
|00004770| 62 75 74 65 53 65 74 28 | 6f 62 6a 65 63 74 2c 20 |buteSet(|object, |
|00004780| 73 65 74 29 3b 0d 09 09 | 7d 0d 09 7d 20 65 6c 73 |set);...|}..} els|
|00004790| 65 20 69 66 28 20 51 33 | 4f 62 6a 65 63 74 5f 49 |e if( Q3|Object_I|
|000047a0| 73 54 79 70 65 28 6f 62 | 6a 65 63 74 2c 20 6b 51 |sType(ob|ject, kQ|
|000047b0| 33 53 68 61 70 65 54 79 | 70 65 47 72 6f 75 70 29 |3ShapeTy|peGroup)|
|000047c0| 20 3d 3d 20 6b 51 33 54 | 72 75 65 20 29 20 7b 0d | == kQ3T|rue ) {.|
|000047d0| 09 09 51 33 53 68 61 70 | 65 5f 47 65 74 53 65 74 |..Q3Shap|e_GetSet|
|000047e0| 28 6f 62 6a 65 63 74 2c | 20 26 73 65 74 29 3b 0d |(object,| &set);.|
|000047f0| 09 09 0d 09 09 69 66 28 | 20 73 65 74 20 3d 3d 20 |.....if(| set == |
|00004800| 4e 55 4c 4c 20 29 20 7b | 0d 09 09 09 73 65 74 20 |NULL ) {|....set |
|00004810| 3d 20 51 33 53 65 74 5f | 4e 65 77 28 29 3b 0d 09 |= Q3Set_|New();..|
|00004820| 09 09 69 66 28 20 73 65 | 74 20 3d 3d 20 4e 55 4c |..if( se|t == NUL|
|00004830| 4c 20 29 20 7b 0d 09 09 | 09 09 73 74 61 74 75 73 |L ) {...|..status|
|00004840| 20 3d 20 6b 51 33 46 61 | 69 6c 75 72 65 3b 0d 09 | = kQ3Fa|ilure;..|
|00004850| 09 09 09 67 6f 74 6f 20 | 63 6c 65 61 6e 45 78 69 |...goto |cleanExi|
|00004860| 74 3b 0d 09 09 09 7d 0d | 09 09 09 51 33 53 68 61 |t;....}.|...Q3Sha|
|00004870| 70 65 5f 53 65 74 53 65 | 74 28 6f 62 6a 65 63 74 |pe_SetSe|t(object|
|00004880| 2c 20 73 65 74 29 3b 0d | 09 09 7d 0d 09 7d 0d 09 |, set);.|..}..}..|
|00004890| 0d 09 69 66 28 20 73 65 | 74 20 29 20 7b 09 09 0d |..if( se|t ) {...|
|000048a0| 09 09 69 66 28 20 51 33 | 53 65 74 5f 41 64 64 28 |..if( Q3|Set_Add(|
|000048b0| 73 65 74 2c 20 6b 45 6c | 65 6d 65 6e 74 54 79 70 |set, kEl|ementTyp|
|000048c0| 65 57 33 41 6e 63 68 6f | 72 2c 20 26 57 33 41 6e |eW3Ancho|r, &W3An|
|000048d0| 63 68 6f 72 29 20 3d 3d | 20 6b 51 33 46 61 69 6c |chor) ==| kQ3Fail|
|000048e0| 75 72 65 20 29 20 7b 0d | 09 09 09 73 74 61 74 75 |ure ) {.|...statu|
|000048f0| 73 20 3d 20 6b 51 33 46 | 61 69 6c 75 72 65 3b 0d |s = kQ3F|ailure;.|
|00004900| 09 09 09 67 6f 74 6f 20 | 63 6c 65 61 6e 45 78 69 |...goto |cleanExi|
|00004910| 74 3b 0d 09 09 7d 0d 09 | 7d 20 65 6c 73 65 20 69 |t;...}..|} else i|
|00004920| 66 28 20 51 33 4f 62 6a | 65 63 74 5f 49 73 54 79 |f( Q3Obj|ect_IsTy|
|00004930| 70 65 28 6f 62 6a 65 63 | 74 2c 20 6b 51 33 53 68 |pe(objec|t, kQ3Sh|
|00004940| 61 72 65 64 54 79 70 65 | 53 65 74 29 20 3d 3d 20 |aredType|Set) == |
|00004950| 6b 51 33 54 72 75 65 20 | 29 20 7b 0d 09 09 69 66 |kQ3True |) {...if|
|00004960| 28 20 51 33 41 74 74 72 | 69 62 75 74 65 53 65 74 |( Q3Attr|ibuteSet|
|00004970| 5f 41 64 64 28 6f 62 6a | 65 63 74 2c 20 6b 45 6c |_Add(obj|ect, kEl|
|00004980| 65 6d 65 6e 74 54 79 70 | 65 57 33 41 6e 63 68 6f |ementTyp|eW3Ancho|
|00004990| 72 2c 20 26 57 33 41 6e | 63 68 6f 72 29 20 3d 3d |r, &W3An|chor) ==|
|000049a0| 20 6b 51 33 46 61 69 6c | 75 72 65 20 29 20 7b 0d | kQ3Fail|ure ) {.|
|000049b0| 09 09 09 73 74 61 74 75 | 73 20 3d 20 6b 51 33 46 |...statu|s = kQ3F|
|000049c0| 61 69 6c 75 72 65 3b 0d | 09 09 09 67 6f 74 6f 20 |ailure;.|...goto |
|000049d0| 63 6c 65 61 6e 45 78 69 | 74 3b 0d 09 09 7d 0d 09 |cleanExi|t;...}..|
|000049e0| 7d 20 65 6c 73 65 20 0d | 09 09 73 74 61 74 75 73 |} else .|..status|
|000049f0| 20 3d 20 6b 51 33 46 61 | 69 6c 75 72 65 3b 0d 09 | = kQ3Fa|ilure;..|
|00004a00| 09 0d 63 6c 65 61 6e 45 | 78 69 74 3a 0d 09 69 66 |..cleanE|xit:..if|
|00004a10| 28 20 73 65 74 20 29 0d | 09 09 51 33 4f 62 6a 65 |( set ).|..Q3Obje|
|00004a20| 63 74 5f 44 69 73 70 6f | 73 65 28 73 65 74 29 3b |ct_Dispo|se(set);|
|00004a30| 0d 09 69 66 28 20 73 74 | 72 69 6e 67 20 29 0d 09 |..if( st|ring )..|
|00004a40| 09 51 33 4f 62 6a 65 63 | 74 5f 44 69 73 70 6f 73 |.Q3Objec|t_Dispos|
|00004a50| 65 28 73 74 72 69 6e 67 | 29 3b 0d 09 72 65 74 75 |e(string|);..retu|
|00004a60| 72 6e 20 73 74 61 74 75 | 73 3b 0d 7d 0d 0d 54 51 |rn statu|s;.}..TQ|
|00004a70| 33 42 6f 6f 6c 65 61 6e | 20 57 33 41 6e 63 68 6f |3Boolean| W3Ancho|
|00004a80| 72 5f 47 65 74 46 72 6f | 6d 4f 62 6a 65 63 74 28 |r_GetFro|mObject(|
|00004a90| 54 51 33 4f 62 6a 65 63 | 74 20 6f 62 6a 65 63 74 |TQ3Objec|t object|
|00004aa0| 2c 20 57 33 41 6e 63 68 | 6f 72 44 61 74 61 20 2a |, W3Anch|orData *|
|00004ab0| 64 61 74 61 29 0d 7b 0d | 09 54 51 33 53 65 74 4f |data).{.|.TQ3SetO|
|00004ac0| 62 6a 65 63 74 09 73 65 | 74 3b 0d 09 54 51 33 42 |bject.se|t;..TQ3B|
|00004ad0| 6f 6f 6c 65 61 6e 09 09 | 72 65 73 75 6c 74 3b 0d |oolean..|result;.|
|00004ae0| 09 0d 09 57 33 41 6e 63 | 68 6f 72 5f 45 6d 70 74 |...W3Anc|hor_Empt|
|00004af0| 79 28 64 61 74 61 29 3b | 0d 09 64 61 74 61 2d 3e |y(data);|..data->|
|00004b00| 75 72 6c 20 3d 20 4e 55 | 4c 4c 3b 0d 09 64 61 74 |url = NU|LL;..dat|
|00004b10| 61 2d 3e 64 65 73 63 72 | 69 70 74 69 6f 6e 20 3d |a->descr|iption =|
|00004b20| 20 4e 55 4c 4c 3b 0d 09 | 73 65 74 20 3d 20 4e 55 | NULL;..|set = NU|
|00004b30| 4c 4c 3b 0d 0d 09 2f 2a | 20 54 68 65 20 6f 62 6a |LL;.../*| The obj|
|00004b40| 65 63 74 20 70 61 73 73 | 65 64 20 69 6e 20 6d 75 |ect pass|ed in mu|
|00004b50| 73 74 20 62 65 20 61 20 | 73 68 61 70 65 20 6f 72 |st be a |shape or|
|00004b60| 20 61 20 67 65 6f 6d 65 | 74 72 79 2e 20 2a 2f 0d | a geome|try. */.|
|00004b70| 09 69 66 20 28 51 33 4f | 62 6a 65 63 74 5f 49 73 |.if (Q3O|bject_Is|
|00004b80| 54 79 70 65 28 6f 62 6a | 65 63 74 2c 20 6b 51 33 |Type(obj|ect, kQ3|
|00004b90| 53 68 61 70 65 54 79 70 | 65 47 65 6f 6d 65 74 72 |ShapeTyp|eGeometr|
|00004ba0| 79 29 20 3d 3d 20 6b 51 | 33 54 72 75 65 29 20 7b |y) == kQ|3True) {|
|00004bb0| 0d 09 09 51 33 47 65 6f | 6d 65 74 72 79 5f 47 65 |...Q3Geo|metry_Ge|
|00004bc0| 74 41 74 74 72 69 62 75 | 74 65 53 65 74 28 6f 62 |tAttribu|teSet(ob|
|00004bd0| 6a 65 63 74 2c 20 26 73 | 65 74 29 3b 0d 09 09 69 |ject, &s|et);...i|
|00004be0| 66 20 28 73 65 74 20 21 | 3d 20 4e 55 4c 4c 29 20 |f (set !|= NULL) |
|00004bf0| 7b 0d 09 09 09 72 65 73 | 75 6c 74 20 3d 20 57 33 |{....res|ult = W3|
|00004c00| 41 6e 63 68 6f 72 5f 47 | 65 74 46 72 6f 6d 53 65 |Anchor_G|etFromSe|
|00004c10| 74 28 73 65 74 2c 20 64 | 61 74 61 29 3b 0d 09 09 |t(set, d|ata);...|
|00004c20| 09 51 33 4f 62 6a 65 63 | 74 5f 44 69 73 70 6f 73 |.Q3Objec|t_Dispos|
|00004c30| 65 28 73 65 74 29 3b 0d | 09 09 09 69 66 20 28 72 |e(set);.|...if (r|
|00004c40| 65 73 75 6c 74 20 3d 3d | 20 6b 51 33 54 72 75 65 |esult ==| kQ3True|
|00004c50| 29 0d 09 09 09 09 72 65 | 74 75 72 6e 20 72 65 73 |).....re|turn res|
|00004c60| 75 6c 74 3b 0d 09 09 09 | 73 65 74 20 3d 20 4e 55 |ult;....|set = NU|
|00004c70| 4c 4c 3b 0d 09 09 7d 0d | 09 7d 0d 09 69 66 20 28 |LL;...}.|.}..if (|
|00004c80| 51 33 4f 62 6a 65 63 74 | 5f 49 73 54 79 70 65 28 |Q3Object|_IsType(|
|00004c90| 6f 62 6a 65 63 74 2c 20 | 6b 51 33 53 68 61 72 65 |object, |kQ3Share|
|00004ca0| 64 54 79 70 65 53 68 61 | 70 65 29 20 3d 3d 20 6b |dTypeSha|pe) == k|
|00004cb0| 51 33 54 72 75 65 29 20 | 7b 0d 09 09 51 33 53 68 |Q3True) |{...Q3Sh|
|00004cc0| 61 70 65 5f 47 65 74 53 | 65 74 28 6f 62 6a 65 63 |ape_GetS|et(objec|
|00004cd0| 74 2c 20 26 73 65 74 29 | 3b 0d 09 09 69 66 20 28 |t, &set)|;...if (|
|00004ce0| 73 65 74 20 21 3d 20 4e | 55 4c 4c 29 20 7b 0d 09 |set != N|ULL) {..|
|00004cf0| 09 09 72 65 73 75 6c 74 | 20 3d 20 57 33 41 6e 63 |..result| = W3Anc|
|00004d00| 68 6f 72 5f 47 65 74 46 | 72 6f 6d 53 65 74 28 73 |hor_GetF|romSet(s|
|00004d10| 65 74 2c 20 64 61 74 61 | 29 3b 0d 09 09 09 51 33 |et, data|);....Q3|
|00004d20| 4f 62 6a 65 63 74 5f 44 | 69 73 70 6f 73 65 28 73 |Object_D|ispose(s|
|00004d30| 65 74 29 3b 0d 09 09 09 | 72 65 74 75 72 6e 20 72 |et);....|return r|
|00004d40| 65 73 75 6c 74 3b 0d 09 | 09 7d 0d 09 7d 0d 09 72 |esult;..|.}..}..r|
|00004d50| 65 74 75 72 6e 20 6b 51 | 33 46 61 6c 73 65 3b 0d |eturn kQ|3False;.|
|00004d60| 7d 0d 0d 54 51 33 42 6f | 6f 6c 65 61 6e 20 57 33 |}..TQ3Bo|olean W3|
|00004d70| 41 6e 63 68 6f 72 5f 47 | 65 74 46 72 6f 6d 53 65 |Anchor_G|etFromSe|
|00004d80| 74 28 54 51 33 53 65 74 | 4f 62 6a 65 63 74 20 73 |t(TQ3Set|Object s|
|00004d90| 65 74 2c 20 57 33 41 6e | 63 68 6f 72 44 61 74 61 |et, W3An|chorData|
|00004da0| 20 2a 64 61 74 61 29 0d | 7b 0d 09 54 51 33 4f 62 | *data).|{..TQ3Ob|
|00004db0| 6a 65 63 74 09 09 09 75 | 6e 6b 4f 62 6a 3b 0d 09 |ject...u|nkObj;..|
|00004dc0| 54 51 33 42 6f 6f 6c 65 | 61 6e 09 09 09 72 65 73 |TQ3Boole|an...res|
|00004dd0| 75 6c 74 3b 0d 09 54 51 | 33 47 72 6f 75 70 50 6f |ult;..TQ|3GroupPo|
|00004de0| 73 69 74 69 6f 6e 09 70 | 6f 73 69 74 69 6f 6e 3b |sition.p|osition;|
|00004df0| 0d 0d 09 72 65 73 75 6c | 74 20 3d 20 6b 51 33 46 |...resul|t = kQ3F|
|00004e00| 61 6c 73 65 3b 0d 0d 09 | 2f 2a 20 49 64 65 61 6c |alse;...|/* Ideal|
|00004e10| 6c 79 2c 20 79 6f 75 27 | 6c 6c 20 66 69 6e 64 20 |ly, you'|ll find |
|00004e20| 6f 6e 65 20 6f 66 20 74 | 68 65 73 65 2e 20 2a 2f |one of t|hese. */|
|00004e30| 0d 09 69 66 20 28 51 33 | 53 65 74 5f 43 6f 6e 74 |..if (Q3|Set_Cont|
|00004e40| 61 69 6e 73 28 73 65 74 | 2c 20 6b 45 6c 65 6d 65 |ains(set|, kEleme|
|00004e50| 6e 74 54 79 70 65 57 33 | 41 6e 63 68 6f 72 29 20 |ntTypeW3|Anchor) |
|00004e60| 3d 3d 20 6b 51 33 54 72 | 75 65 29 20 7b 0d 09 09 |== kQ3Tr|ue) {...|
|00004e70| 69 66 20 28 51 33 53 65 | 74 5f 47 65 74 28 73 65 |if (Q3Se|t_Get(se|
|00004e80| 74 2c 20 6b 45 6c 65 6d | 65 6e 74 54 79 70 65 57 |t, kElem|entTypeW|
|00004e90| 33 41 6e 63 68 6f 72 2c | 20 64 61 74 61 29 20 3d |3Anchor,| data) =|
|00004ea0| 3d 20 6b 51 33 46 61 69 | 6c 75 72 65 29 0d 09 09 |= kQ3Fai|lure)...|
|00004eb0| 09 72 65 74 75 72 6e 20 | 6b 51 33 46 61 6c 73 65 |.return |kQ3False|
|00004ec0| 3b 09 2f 2a 20 45 72 72 | 6f 72 3a 20 43 6f 6e 74 |;./* Err|or: Cont|
|00004ed0| 61 69 6e 73 2c 20 62 75 | 74 20 63 61 6e 27 74 20 |ains, bu|t can't |
|00004ee0| 67 65 74 21 20 2a 2f 0d | 09 09 72 65 74 75 72 6e |get! */.|..return|
|00004ef0| 20 6b 51 33 54 72 75 65 | 3b 0d 09 7d 0d 0d 09 2f | kQ3True|;..}.../|
|00004f00| 2a 20 42 75 74 20 64 75 | 65 20 74 6f 20 61 20 62 |* But du|e to a b|
|00004f10| 75 67 20 69 6e 20 51 75 | 69 63 6b 44 72 61 77 20 |ug in Qu|ickDraw |
|00004f20| 33 44 20 76 65 72 73 69 | 6f 6e 73 20 70 72 69 6f |3D versi|ons prio|
|00004f30| 72 20 74 6f 20 31 2e 30 | 2e 34 2c 20 74 68 65 0d |r to 1.0|.4, the.|
|00004f40| 09 09 65 6c 65 6d 65 6e | 74 20 6d 61 79 20 62 65 |..elemen|t may be|
|00004f50| 20 63 6f 6e 74 61 69 6e | 65 64 20 77 69 74 68 69 | contain|ed withi|
|00004f60| 6e 20 61 6e 6f 74 68 65 | 72 20 73 65 74 20 69 6e |n anothe|r set in|
|00004f70| 20 74 68 65 20 75 6e 6b | 6e 6f 77 6e 20 0d 09 09 | the unk|nown ...|
|00004f80| 65 6c 65 6d 65 6e 74 2e | 20 2a 2f 0d 09 69 66 20 |element.| */..if |
|00004f90| 28 51 33 53 65 74 5f 43 | 6f 6e 74 61 69 6e 73 28 |(Q3Set_C|ontains(|
|00004fa0| 73 65 74 2c 20 6b 51 33 | 45 6c 65 6d 65 6e 74 54 |set, kQ3|ElementT|
|00004fb0| 79 70 65 55 6e 6b 6e 6f | 77 6e 29 20 3d 3d 20 6b |ypeUnkno|wn) == k|
|00004fc0| 51 33 54 72 75 65 29 20 | 7b 0d 09 09 69 66 20 28 |Q3True) |{...if (|
|00004fd0| 51 33 53 65 74 5f 47 65 | 74 28 73 65 74 2c 20 6b |Q3Set_Ge|t(set, k|
|00004fe0| 51 33 45 6c 65 6d 65 6e | 74 54 79 70 65 55 6e 6b |Q3Elemen|tTypeUnk|
|00004ff0| 6e 6f 77 6e 2c 20 26 75 | 6e 6b 4f 62 6a 29 20 3d |nown, &u|nkObj) =|
|00005000| 3d 20 6b 51 33 46 61 69 | 6c 75 72 65 29 0d 09 09 |= kQ3Fai|lure)...|
|00005010| 09 72 65 74 75 72 6e 20 | 6b 51 33 46 61 6c 73 65 |.return |kQ3False|
|00005020| 3b 09 2f 2a 20 45 72 72 | 6f 72 3a 20 43 6f 6e 74 |;./* Err|or: Cont|
|00005030| 61 69 6e 73 2c 20 62 75 | 74 20 63 61 6e 27 74 20 |ains, bu|t can't |
|00005040| 67 65 74 21 20 2a 2f 0d | 09 09 69 66 20 28 75 6e |get! */.|..if (un|
|00005050| 6b 4f 62 6a 20 3d 3d 20 | 4e 55 4c 4c 29 0d 09 09 |kObj == |NULL)...|
|00005060| 09 72 65 74 75 72 6e 20 | 6b 51 33 46 61 6c 73 65 |.return |kQ3False|
|00005070| 3b 0d 09 09 2f 2a 20 55 | 6e 6b 6e 6f 77 6e 20 6f |;.../* U|nknown o|
|00005080| 62 6a 65 63 74 73 20 6d | 61 79 20 63 6f 6e 74 61 |bjects m|ay conta|
|00005090| 69 6e 20 6f 6e 65 20 6f | 62 6a 65 63 74 20 6f 72 |in one o|bject or|
|000050a0| 20 61 20 67 72 6f 75 70 | 2e 20 2a 2f 0d 09 09 69 | a group|. */...i|
|000050b0| 66 20 28 51 33 4f 62 6a | 65 63 74 5f 49 73 54 79 |f (Q3Obj|ect_IsTy|
|000050c0| 70 65 28 75 6e 6b 4f 62 | 6a 2c 20 6b 51 33 53 68 |pe(unkOb|j, kQ3Sh|
|000050d0| 61 72 65 64 54 79 70 65 | 53 65 74 29 20 3d 3d 20 |aredType|Set) == |
|000050e0| 6b 51 33 54 72 75 65 29 | 0d 09 09 09 72 65 73 75 |kQ3True)|....resu|
|000050f0| 6c 74 20 3d 20 57 33 41 | 6e 63 68 6f 72 5f 47 65 |lt = W3A|nchor_Ge|
|00005100| 74 46 72 6f 6d 53 65 74 | 28 75 6e 6b 4f 62 6a 2c |tFromSet|(unkObj,|
|00005110| 20 64 61 74 61 29 3b 0d | 09 09 65 6c 73 65 20 69 | data);.|..else i|
|00005120| 66 20 28 51 33 4f 62 6a | 65 63 74 5f 49 73 54 79 |f (Q3Obj|ect_IsTy|
|00005130| 70 65 28 75 6e 6b 4f 62 | 6a 2c 20 6b 51 33 53 68 |pe(unkOb|j, kQ3Sh|
|00005140| 61 70 65 54 79 70 65 47 | 72 6f 75 70 29 20 3d 3d |apeTypeG|roup) ==|
|00005150| 20 6b 51 33 54 72 75 65 | 29 20 7b 0d 09 09 09 51 | kQ3True|) {....Q|
|00005160| 33 47 72 6f 75 70 5f 47 | 65 74 46 69 72 73 74 50 |3Group_G|etFirstP|
|00005170| 6f 73 69 74 69 6f 6e 4f | 66 54 79 70 65 28 75 6e |ositionO|fType(un|
|00005180| 6b 4f 62 6a 2c 20 6b 51 | 33 53 68 61 72 65 64 54 |kObj, kQ|3SharedT|
|00005190| 79 70 65 53 65 74 2c 0d | 09 09 09 09 26 70 6f 73 |ypeSet,.|....&pos|
|000051a0| 69 74 69 6f 6e 29 3b 0d | 09 09 09 69 66 20 28 70 |ition);.|...if (p|
|000051b0| 6f 73 69 74 69 6f 6e 20 | 21 3d 20 4e 55 4c 4c 29 |osition |!= NULL)|
|000051c0| 20 7b 0d 09 09 09 09 51 | 33 47 72 6f 75 70 5f 47 | {.....Q|3Group_G|
|000051d0| 65 74 50 6f 73 69 74 69 | 6f 6e 4f 62 6a 65 63 74 |etPositi|onObject|
|000051e0| 28 75 6e 6b 4f 62 6a 2c | 20 70 6f 73 69 74 69 6f |(unkObj,| positio|
|000051f0| 6e 2c 20 26 73 65 74 29 | 3b 0d 09 09 09 09 72 65 |n, &set)|;.....re|
|00005200| 73 75 6c 74 20 3d 20 57 | 33 41 6e 63 68 6f 72 5f |sult = W|3Anchor_|
|00005210| 47 65 74 46 72 6f 6d 53 | 65 74 28 73 65 74 2c 20 |GetFromS|et(set, |
|00005220| 64 61 74 61 29 3b 0d 09 | 09 09 7d 0d 09 09 7d 0d |data);..|..}...}.|
|00005230| 09 09 51 33 4f 62 6a 65 | 63 74 5f 44 69 73 70 6f |..Q3Obje|ct_Dispo|
|00005240| 73 65 28 75 6e 6b 4f 62 | 6a 29 3b 0d 09 7d 0d 09 |se(unkOb|j);..}..|
|00005250| 72 65 74 75 72 6e 20 72 | 65 73 75 6c 74 3b 0d 7d |return r|esult;.}|
|00005260| 0d 0d 0d 54 51 33 42 6f | 6f 6c 65 61 6e 20 57 33 |...TQ3Bo|olean W3|
|00005270| 41 6e 63 68 6f 72 5f 47 | 65 74 46 72 6f 6d 48 69 |Anchor_G|etFromHi|
|00005280| 74 44 61 74 61 28 0d 09 | 63 6f 6e 73 74 20 54 51 |tData(..|const TQ|
|00005290| 33 48 69 74 44 61 74 61 | 20 2a 68 69 74 44 61 74 |3HitData| *hitDat|
|000052a0| 61 2c 20 0d 09 57 33 41 | 6e 63 68 6f 72 44 61 74 |a, ..W3A|nchorDat|
|000052b0| 61 20 2a 64 61 74 61 29 | 0d 7b 0d 09 69 66 20 28 |a *data)|.{..if (|
|000052c0| 64 61 74 61 20 3d 3d 20 | 4e 55 4c 4c 29 0d 09 09 |data == |NULL)...|
|000052d0| 72 65 74 75 72 6e 20 6b | 51 33 46 61 6c 73 65 3b |return k|Q3False;|
|000052e0| 0d 09 09 0d 09 72 65 74 | 75 72 6e 20 57 33 41 6e |.....ret|urn W3An|
|000052f0| 63 68 6f 72 5f 47 65 74 | 46 72 6f 6d 4f 62 6a 65 |chor_Get|FromObje|
|00005300| 63 74 20 28 68 69 74 44 | 61 74 61 2d 3e 6f 62 6a |ct (hitD|ata->obj|
|00005310| 65 63 74 2c 20 64 61 74 | 61 29 3b 0d 7d 0d 0d 23 |ect, dat|a);.}..#|
|00005320| 69 66 64 65 66 20 5f 5f | 63 70 6c 75 73 70 6c 75 |ifdef __|cplusplu|
|00005330| 73 0d 65 78 74 65 72 6e | 20 22 43 22 20 7b 0d 23 |s.extern| "C" {.#|
|00005340| 65 6e 64 69 66 20 20 2f | 2a 20 5f 5f 63 70 6c 75 |endif /|* __cplu|
|00005350| 73 70 6c 75 73 20 2a 2f | 0d 0d 54 51 33 53 74 61 |splus */|..TQ3Sta|
|00005360| 74 75 73 20 57 33 41 6e | 63 68 6f 72 5f 54 72 61 |tus W3An|chor_Tra|
|00005370| 76 65 72 73 65 28 0d 09 | 54 51 33 4f 62 6a 65 63 |verse(..|TQ3Objec|
|00005380| 74 09 09 09 09 75 6e 75 | 73 65 64 2c 0d 09 57 33 |t....unu|sed,..W3|
|00005390| 41 6e 63 68 6f 72 44 61 | 74 61 09 09 09 2a 55 52 |AnchorDa|ta...*UR|
|000053a0| 4c 64 61 74 61 2c 0d 09 | 54 51 33 56 69 65 77 4f |Ldata,..|TQ3ViewO|
|000053b0| 62 6a 65 63 74 09 09 09 | 76 69 65 77 29 3b 0d 0d |bject...|view);..|
|000053c0| 23 69 66 64 65 66 20 5f | 5f 63 70 6c 75 73 70 6c |#ifdef _|_cpluspl|
|000053d0| 75 73 0d 7d 0d 23 65 6e | 64 69 66 09 2f 2a 20 5f |us.}.#en|dif./* _|
|000053e0| 5f 63 70 6c 75 73 70 6c | 75 73 20 2a 2f 0d 0d 2f |_cpluspl|us */../|
|000053f0| 2a 0d 20 2a 20 57 33 41 | 6e 63 68 6f 72 5f 54 72 |*. * W3A|nchor_Tr|
|00005400| 61 76 65 72 73 65 0d 20 | 2a 2f 0d 54 51 33 53 74 |averse. |*/.TQ3St|
|00005410| 61 74 75 73 20 57 33 41 | 6e 63 68 6f 72 5f 54 72 |atus W3A|nchor_Tr|
|00005420| 61 76 65 72 73 65 28 0d | 09 54 51 33 4f 62 6a 65 |averse(.|.TQ3Obje|
|00005430| 63 74 09 09 09 09 75 6e | 75 73 65 64 2c 0d 09 57 |ct....un|used,..W|
|00005440| 33 41 6e 63 68 6f 72 44 | 61 74 61 09 09 09 2a 55 |3AnchorD|ata...*U|
|00005450| 52 4c 64 61 74 61 2c 0d | 09 54 51 33 56 69 65 77 |RLdata,.|.TQ3View|
|00005460| 4f 62 6a 65 63 74 09 09 | 09 76 69 65 77 29 0d 7b |Object..|.view).{|
|00005470| 0d 09 54 51 33 53 69 7a | 65 09 09 73 69 7a 65 3b |..TQ3Siz|e..size;|
|00005480| 0d 0d 09 28 76 6f 69 64 | 29 20 75 6e 75 73 65 64 |...(void|) unused|
|00005490| 3b 0d 09 0d 09 69 66 20 | 28 55 52 4c 64 61 74 61 |;....if |(URLdata|
|000054a0| 2d 3e 75 72 6c 20 3d 3d | 20 4e 55 4c 4c 29 0d 09 |->url ==| NULL)..|
|000054b0| 09 72 65 74 75 72 6e 20 | 6b 51 33 53 75 63 63 65 |.return |kQ3Succe|
|000054c0| 73 73 3b 0d 09 0d 09 73 | 69 7a 65 20 3d 20 51 33 |ss;....s|ize = Q3|
|000054d0| 53 69 7a 65 5f 50 61 64 | 28 73 74 72 6c 65 6e 28 |Size_Pad|(strlen(|
|000054e0| 55 52 4c 64 61 74 61 2d | 3e 75 72 6c 29 20 2b 20 |URLdata-|>url) + |
|000054f0| 31 29 3b 0d 09 73 69 7a | 65 20 2b 3d 20 73 69 7a |1);..siz|e += siz|
|00005500| 65 6f 66 28 54 51 33 55 | 6e 73 33 32 29 3b 0d 09 |eof(TQ3U|ns32);..|
|00005510| 0d 09 69 66 28 20 51 33 | 56 69 65 77 5f 53 75 62 |..if( Q3|View_Sub|
|00005520| 6d 69 74 57 72 69 74 65 | 44 61 74 61 28 76 69 65 |mitWrite|Data(vie|
|00005530| 77 2c 20 73 69 7a 65 2c | 20 55 52 4c 64 61 74 61 |w, size,| URLdata|
|00005540| 2c 20 4e 55 4c 4c 29 20 | 3d 3d 20 6b 51 33 46 61 |, NULL) |== kQ3Fa|
|00005550| 69 6c 75 72 65 20 29 0d | 09 09 72 65 74 75 72 6e |ilure ).|..return|
|00005560| 20 6b 51 33 46 61 69 6c | 75 72 65 3b 0d 09 0d 09 | kQ3Fail|ure;....|
|00005570| 69 66 28 55 52 4c 64 61 | 74 61 2d 3e 64 65 73 63 |if(URLda|ta->desc|
|00005580| 72 69 70 74 69 6f 6e 29 | 20 7b 0d 09 09 69 66 28 |ription)| {...if(|
|00005590| 20 51 33 4f 62 6a 65 63 | 74 5f 53 75 62 6d 69 74 | Q3Objec|t_Submit|
|000055a0| 28 55 52 4c 64 61 74 61 | 2d 3e 64 65 73 63 72 69 |(URLdata|->descri|
|000055b0| 70 74 69 6f 6e 2c 20 76 | 69 65 77 29 20 3d 3d 20 |ption, v|iew) == |
|000055c0| 6b 51 33 46 61 69 6c 75 | 72 65 20 29 0d 09 09 09 |kQ3Failu|re )....|
|000055d0| 72 65 74 75 72 6e 20 6b | 51 33 46 61 69 6c 75 72 |return k|Q3Failur|
|000055e0| 65 3b 0d 09 7d 0d 09 0d | 09 72 65 74 75 72 6e 20 |e;..}...|.return |
|000055f0| 6b 51 33 53 75 63 63 65 | 73 73 3b 0d 7d 0d 0d 2f |kQ3Succe|ss;.}../|
|00005600| 2a 0d 20 2a 20 57 33 41 | 6e 63 68 6f 72 5f 57 72 |*. * W3A|nchor_Wr|
|00005610| 69 74 65 0d 20 2a 2f 0d | 73 74 61 74 69 63 20 54 |ite. */.|static T|
|00005620| 51 33 53 74 61 74 75 73 | 20 57 33 41 6e 63 68 6f |Q3Status| W3Ancho|
|00005630| 72 5f 57 72 69 74 65 28 | 0d 09 57 33 41 6e 63 68 |r_Write(|..W3Anch|
|00005640| 6f 72 44 61 74 61 09 09 | 09 2a 55 52 4c 64 61 74 |orData..|.*URLdat|
|00005650| 61 2c 0d 09 54 51 33 46 | 69 6c 65 4f 62 6a 65 63 |a,..TQ3F|ileObjec|
|00005660| 74 09 09 09 66 69 6c 65 | 29 0d 7b 0d 09 72 65 74 |t...file|).{..ret|
|00005670| 75 72 6e 20 0d 09 09 51 | 33 53 74 72 69 6e 67 5f |urn ...Q|3String_|
|00005680| 57 72 69 74 65 28 55 52 | 4c 64 61 74 61 2d 3e 75 |Write(UR|Ldata->u|
|00005690| 72 6c 2c 20 66 69 6c 65 | 29 20 3d 3d 20 6b 51 33 |rl, file|) == kQ3|
|000056a0| 53 75 63 63 65 73 73 20 | 26 26 0d 09 09 51 33 55 |Success |&&...Q3U|
|000056b0| 6e 73 33 32 5f 57 72 69 | 74 65 28 28 75 6e 73 69 |ns32_Wri|te((unsi|
|000056c0| 67 6e 65 64 20 6c 6f 6e | 67 29 20 55 52 4c 64 61 |gned lon|g) URLda|
|000056d0| 74 61 2d 3e 6f 70 74 69 | 6f 6e 73 2c 20 66 69 6c |ta->opti|ons, fil|
|000056e0| 65 29 20 3d 3d 20 6b 51 | 33 53 75 63 63 65 73 73 |e) == kQ|3Success|
|000056f0| 20 3f 20 6b 51 33 53 75 | 63 63 65 73 73 20 3a 20 | ? kQ3Su|ccess : |
|00005700| 6b 51 33 46 61 69 6c 75 | 72 65 3b 0d 7d 0d 0d 2f |kQ3Failu|re;.}../|
|00005710| 2a 0d 20 2a 20 57 33 41 | 6e 63 68 6f 72 5f 52 65 |*. * W3A|nchor_Re|
|00005720| 61 64 44 61 74 61 0d 20 | 2a 2f 0d 73 74 61 74 69 |adData. |*/.stati|
|00005730| 63 20 54 51 33 53 74 61 | 74 75 73 20 57 33 41 6e |c TQ3Sta|tus W3An|
|00005740| 63 68 6f 72 5f 52 65 61 | 64 44 61 74 61 28 0d 09 |chor_Rea|dData(..|
|00005750| 54 51 33 53 65 74 4f 62 | 6a 65 63 74 09 09 09 73 |TQ3SetOb|ject...s|
|00005760| 65 74 2c 0d 09 54 51 33 | 46 69 6c 65 4f 62 6a 65 |et,..TQ3|FileObje|
|00005770| 63 74 09 09 09 66 69 6c | 65 29 0d 7b 0d 09 63 68 |ct...fil|e).{..ch|
|00005780| 61 72 09 09 09 09 62 75 | 66 5b 6b 51 33 53 74 72 |ar....bu|f[kQ3Str|
|00005790| 69 6e 67 4d 61 78 69 6d | 75 6d 4c 65 6e 67 74 68 |ingMaxim|umLength|
|000057a0| 5d 3b 0d 09 57 33 41 6e | 63 68 6f 72 44 61 74 61 |];..W3An|chorData|
|000057b0| 09 09 55 52 4c 44 61 74 | 61 20 3d 20 7b 4e 55 4c |..URLDat|a = {NUL|
|000057c0| 4c 2c 20 4e 55 4c 4c 2c | 20 6b 57 33 41 6e 63 68 |L, NULL,| kW3Anch|
|000057d0| 6f 72 4f 70 74 69 6f 6e | 4e 6f 6e 65 7d 3b 0d 09 |orOption|None};..|
|000057e0| 0d 09 69 66 20 28 51 33 | 53 74 72 69 6e 67 5f 52 |..if (Q3|String_R|
|000057f0| 65 61 64 28 62 75 66 2c | 20 4e 55 4c 4c 2c 20 66 |ead(buf,| NULL, f|
|00005800| 69 6c 65 29 20 3d 3d 20 | 6b 51 33 46 61 69 6c 75 |ile) == |kQ3Failu|
|00005810| 72 65 29 0d 09 09 72 65 | 74 75 72 6e 20 6b 51 33 |re)...re|turn kQ3|
|00005820| 46 61 69 6c 75 72 65 3b | 0d 0d 09 55 52 4c 44 61 |Failure;|...URLDa|
|00005830| 74 61 2e 75 72 6c 20 3d | 20 28 63 68 61 72 20 2a |ta.url =| (char *|
|00005840| 29 20 6d 61 6c 6c 6f 63 | 28 20 73 74 72 6c 65 6e |) malloc|( strlen|
|00005850| 28 62 75 66 29 20 2b 20 | 31 29 3b 0d 09 73 74 72 |(buf) + |1);..str|
|00005860| 63 70 79 28 20 55 52 4c | 44 61 74 61 2e 75 72 6c |cpy( URL|Data.url|
|00005870| 2c 20 62 75 66 29 3b 0d | 09 0d 09 69 66 20 28 51 |, buf);.|...if (Q|
|00005880| 33 55 6e 73 33 32 5f 52 | 65 61 64 28 20 28 75 6e |3Uns32_R|ead( (un|
|00005890| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 2a 29 20 26 |signed l|ong *) &|
|000058a0| 55 52 4c 44 61 74 61 2e | 6f 70 74 69 6f 6e 73 2c |URLData.|options,|
|000058b0| 20 66 69 6c 65 29 20 3d | 3d 20 6b 51 33 46 61 69 | file) =|= kQ3Fai|
|000058c0| 6c 75 72 65 29 0d 09 09 | 72 65 74 75 72 6e 20 6b |lure)...|return k|
|000058d0| 51 33 46 61 69 6c 75 72 | 65 3b 0d 09 0d 09 69 66 |Q3Failur|e;....if|
|000058e0| 28 20 51 33 46 69 6c 65 | 5f 49 73 45 6e 64 4f 66 |( Q3File|_IsEndOf|
|000058f0| 43 6f 6e 74 61 69 6e 65 | 72 28 66 69 6c 65 2c 20 |Containe|r(file, |
|00005900| 4e 55 4c 4c 29 20 3d 3d | 20 6b 51 33 46 61 6c 73 |NULL) ==| kQ3Fals|
|00005910| 65 20 29 20 7b 0d 09 09 | 55 52 4c 44 61 74 61 2e |e ) {...|URLData.|
|00005920| 64 65 73 63 72 69 70 74 | 69 6f 6e 20 3d 20 51 33 |descript|ion = Q3|
|00005930| 46 69 6c 65 5f 52 65 61 | 64 4f 62 6a 65 63 74 28 |File_Rea|dObject(|
|00005940| 66 69 6c 65 29 3b 0d 09 | 7d 0d 09 0d 09 72 65 74 |file);..|}....ret|
|00005950| 75 72 6e 20 51 33 53 65 | 74 5f 41 64 64 28 73 65 |urn Q3Se|t_Add(se|
|00005960| 74 2c 20 6b 45 6c 65 6d | 65 6e 74 54 79 70 65 57 |t, kElem|entTypeW|
|00005970| 33 41 6e 63 68 6f 72 2c | 20 26 55 52 4c 44 61 74 |3Anchor,| &URLDat|
|00005980| 61 29 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 57 33 41 |a);.}../|*. * W3A|
|00005990| 6e 63 68 6f 72 5f 43 6f | 70 79 41 64 64 0d 20 2a |nchor_Co|pyAdd. *|
|000059a0| 2f 0d 73 74 61 74 69 63 | 20 54 51 33 53 74 61 74 |/.static| TQ3Stat|
|000059b0| 75 73 20 57 33 41 6e 63 | 68 6f 72 5f 43 6f 70 79 |us W3Anc|hor_Copy|
|000059c0| 41 64 64 28 0d 09 57 33 | 41 6e 63 68 6f 72 44 61 |Add(..W3|AnchorDa|
|000059d0| 74 61 09 2a 73 72 63 2c | 0d 09 57 33 41 6e 63 68 |ta.*src,|..W3Anch|
|000059e0| 6f 72 44 61 74 61 09 2a | 64 73 74 29 0d 7b 0d 09 |orData.*|dst).{..|
|000059f0| 6c 6f 6e 67 09 69 3b 0d | 09 0d 09 69 66 20 28 73 |long.i;.|...if (s|
|00005a00| 72 63 2d 3e 75 72 6c 20 | 3d 3d 20 4e 55 4c 4c 29 |rc->url |== NULL)|
|00005a10| 0d 09 09 72 65 74 75 72 | 6e 20 6b 51 33 46 61 69 |...retur|n kQ3Fai|
|00005a20| 6c 75 72 65 3b 0d 0d 09 | 69 20 3d 20 73 74 72 6c |lure;...|i = strl|
|00005a30| 65 6e 28 73 72 63 2d 3e | 75 72 6c 29 3b 0d 09 0d |en(src->|url);...|
|00005a40| 09 69 66 20 28 69 20 3d | 3d 20 30 29 0d 09 09 72 |.if (i =|= 0)...r|
|00005a50| 65 74 75 72 6e 20 6b 51 | 33 46 61 69 6c 75 72 65 |eturn kQ|3Failure|
|00005a60| 3b 0d 09 0d 09 64 73 74 | 2d 3e 75 72 6c 20 3d 20 |;....dst|->url = |
|00005a70| 28 63 68 61 72 20 2a 29 | 20 6d 61 6c 6c 6f 63 28 |(char *)| malloc(|
|00005a80| 69 20 2b 20 31 29 3b 0d | 09 0d 09 69 66 20 28 64 |i + 1);.|...if (d|
|00005a90| 73 74 2d 3e 75 72 6c 20 | 3d 3d 20 4e 55 4c 4c 29 |st->url |== NULL)|
|00005aa0| 0d 09 09 72 65 74 75 72 | 6e 20 6b 51 33 46 61 69 |...retur|n kQ3Fai|
|00005ab0| 6c 75 72 65 3b 0d 09 09 | 0d 09 73 74 72 63 70 79 |lure;...|..strcpy|
|00005ac0| 28 64 73 74 2d 3e 75 72 | 6c 2c 20 73 72 63 2d 3e |(dst->ur|l, src->|
|00005ad0| 75 72 6c 29 3b 0d 09 0d | 09 69 66 28 20 73 72 63 |url);...|.if( src|
|00005ae0| 2d 3e 64 65 73 63 72 69 | 70 74 69 6f 6e 20 29 20 |->descri|ption ) |
|00005af0| 7b 0d 09 09 54 51 33 53 | 74 72 69 6e 67 4f 62 6a |{...TQ3S|tringObj|
|00005b00| 65 63 74 09 73 74 72 69 | 6e 67 52 65 66 65 72 65 |ect.stri|ngRefere|
|00005b10| 6e 63 65 3b 0d 09 09 0d | 09 09 73 74 72 69 6e 67 |nce;....|..string|
|00005b20| 52 65 66 65 72 65 6e 63 | 65 20 3d 20 51 33 53 68 |Referenc|e = Q3Sh|
|00005b30| 61 72 65 64 5f 47 65 74 | 52 65 66 65 72 65 6e 63 |ared_Get|Referenc|
|00005b40| 65 28 73 72 63 2d 3e 64 | 65 73 63 72 69 70 74 69 |e(src->d|escripti|
|00005b50| 6f 6e 29 3b 0d 09 09 0d | 09 09 69 66 28 20 73 74 |on);....|..if( st|
|00005b60| 72 69 6e 67 52 65 66 65 | 72 65 6e 63 65 20 3d 3d |ringRefe|rence ==|
|00005b70| 20 4e 55 4c 4c 29 20 7b | 0d 09 09 09 72 65 74 75 | NULL) {|....retu|
|00005b80| 72 6e 20 6b 51 33 46 61 | 69 6c 75 72 65 3b 0d 09 |rn kQ3Fa|ilure;..|
|00005b90| 09 7d 0d 09 09 0d 09 09 | 64 73 74 2d 3e 64 65 73 |.}......|dst->des|
|00005ba0| 63 72 69 70 74 69 6f 6e | 20 3d 20 73 74 72 69 6e |cription| = strin|
|00005bb0| 67 52 65 66 65 72 65 6e | 63 65 3b 0d 09 7d 20 65 |gReferen|ce;..} e|
|00005bc0| 6c 73 65 0d 09 09 64 73 | 74 2d 3e 64 65 73 63 72 |lse...ds|t->descr|
|00005bd0| 69 70 74 69 6f 6e 20 3d | 20 4e 55 4c 4c 3b 0d 09 |iption =| NULL;..|
|00005be0| 09 0d 09 64 73 74 2d 3e | 6f 70 74 69 6f 6e 73 20 |...dst->|options |
|00005bf0| 3d 20 73 72 63 2d 3e 6f | 70 74 69 6f 6e 73 3b 0d |= src->o|ptions;.|
|00005c00| 09 72 65 74 75 72 6e 20 | 6b 51 33 53 75 63 63 65 |.return |kQ3Succe|
|00005c10| 73 73 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 57 33 41 |ss;.}../|*. * W3A|
|00005c20| 6e 63 68 6f 72 5f 43 6f | 70 79 52 65 70 6c 61 63 |nchor_Co|pyReplac|
|00005c30| 65 0d 20 2a 2f 0d 73 74 | 61 74 69 63 20 54 51 33 |e. */.st|atic TQ3|
|00005c40| 53 74 61 74 75 73 20 57 | 33 41 6e 63 68 6f 72 5f |Status W|3Anchor_|
|00005c50| 43 6f 70 79 52 65 70 6c | 61 63 65 28 0d 09 57 33 |CopyRepl|ace(..W3|
|00005c60| 41 6e 63 68 6f 72 44 61 | 74 61 09 2a 73 72 63 2c |AnchorDa|ta.*src,|
|00005c70| 0d 09 57 33 41 6e 63 68 | 6f 72 44 61 74 61 09 2a |..W3Anch|orData.*|
|00005c80| 64 73 74 29 0d 7b 0d 09 | 6c 6f 6e 67 09 69 3b 0d |dst).{..|long.i;.|
|00005c90| 09 63 68 61 72 09 2a 63 | 3b 0d 09 0d 09 69 66 20 |.char.*c|;....if |
|00005ca0| 28 73 72 63 2d 3e 75 72 | 6c 20 3d 3d 20 4e 55 4c |(src->ur|l == NUL|
|00005cb0| 4c 29 0d 09 09 72 65 74 | 75 72 6e 20 6b 51 33 46 |L)...ret|urn kQ3F|
|00005cc0| 61 69 6c 75 72 65 3b 0d | 0d 09 69 20 3d 20 73 74 |ailure;.|..i = st|
|00005cd0| 72 6c 65 6e 28 73 72 63 | 2d 3e 75 72 6c 29 3b 0d |rlen(src|->url);.|
|00005ce0| 09 0d 09 69 66 20 28 69 | 20 3d 3d 20 30 29 0d 09 |...if (i| == 0)..|
|00005cf0| 09 72 65 74 75 72 6e 20 | 6b 51 33 46 61 69 6c 75 |.return |kQ3Failu|
|00005d00| 72 65 3b 0d 09 09 0d 09 | 63 20 3d 20 28 63 68 61 |re;.....|c = (cha|
|00005d10| 72 20 2a 29 20 72 65 61 | 6c 6c 6f 63 28 64 73 74 |r *) rea|lloc(dst|
|00005d20| 2d 3e 75 72 6c 2c 20 69 | 20 2b 20 31 29 3b 0d 09 |->url, i| + 1);..|
|00005d30| 0d 09 69 66 20 28 63 20 | 3d 3d 20 4e 55 4c 4c 29 |..if (c |== NULL)|
|00005d40| 0d 09 09 72 65 74 75 72 | 6e 20 6b 51 33 46 61 69 |...retur|n kQ3Fai|
|00005d50| 6c 75 72 65 3b 0d 09 0d | 09 64 73 74 2d 3e 75 72 |lure;...|.dst->ur|
|00005d60| 6c 20 3d 20 63 3b 0d 09 | 09 0d 09 73 74 72 63 70 |l = c;..|...strcp|
|00005d70| 79 28 64 73 74 2d 3e 75 | 72 6c 2c 20 73 72 63 2d |y(dst->u|rl, src-|
|00005d80| 3e 75 72 6c 29 3b 0d 09 | 0d 09 69 66 28 20 73 72 |>url);..|..if( sr|
|00005d90| 63 2d 3e 64 65 73 63 72 | 69 70 74 69 6f 6e 20 29 |c->descr|iption )|
|00005da0| 20 7b 0d 09 09 54 51 33 | 53 74 72 69 6e 67 4f 62 | {...TQ3|StringOb|
|00005db0| 6a 65 63 74 09 73 74 72 | 69 6e 67 52 65 66 65 72 |ject.str|ingRefer|
|00005dc0| 65 6e 63 65 3b 0d 09 09 | 0d 09 09 73 74 72 69 6e |ence;...|...strin|
|00005dd0| 67 52 65 66 65 72 65 6e | 63 65 20 3d 20 51 33 53 |gReferen|ce = Q3S|
|00005de0| 68 61 72 65 64 5f 47 65 | 74 52 65 66 65 72 65 6e |hared_Ge|tReferen|
|00005df0| 63 65 28 73 72 63 2d 3e | 64 65 73 63 72 69 70 74 |ce(src->|descript|
|00005e00| 69 6f 6e 29 3b 0d 09 09 | 0d 09 09 69 66 28 20 73 |ion);...|...if( s|
|00005e10| 74 72 69 6e 67 52 65 66 | 65 72 65 6e 63 65 20 3d |tringRef|erence =|
|00005e20| 3d 20 4e 55 4c 4c 29 20 | 7b 0d 09 09 09 72 65 74 |= NULL) |{....ret|
|00005e30| 75 72 6e 20 6b 51 33 46 | 61 69 6c 75 72 65 3b 0d |urn kQ3F|ailure;.|
|00005e40| 09 09 7d 0d 09 09 0d 09 | 09 69 66 28 20 64 73 74 |..}.....|.if( dst|
|00005e50| 2d 3e 64 65 73 63 72 69 | 70 74 69 6f 6e 20 29 20 |->descri|ption ) |
|00005e60| 7b 0d 09 09 09 51 33 4f | 62 6a 65 63 74 5f 44 69 |{....Q3O|bject_Di|
|00005e70| 73 70 6f 73 65 28 64 73 | 74 2d 3e 64 65 73 63 72 |spose(ds|t->descr|
|00005e80| 69 70 74 69 6f 6e 29 3b | 0d 09 09 7d 0d 09 09 0d |iption);|...}....|
|00005e90| 09 09 64 73 74 2d 3e 64 | 65 73 63 72 69 70 74 69 |..dst->d|escripti|
|00005ea0| 6f 6e 20 3d 20 73 74 72 | 69 6e 67 52 65 66 65 72 |on = str|ingRefer|
|00005eb0| 65 6e 63 65 3b 0d 09 7d | 20 65 6c 73 65 0d 09 09 |ence;..}| else...|
|00005ec0| 64 73 74 2d 3e 64 65 73 | 63 72 69 70 74 69 6f 6e |dst->des|cription|
|00005ed0| 20 3d 20 4e 55 4c 4c 3b | 0d 09 09 0d 09 64 73 74 | = NULL;|.....dst|
|00005ee0| 2d 3e 6f 70 74 69 6f 6e | 73 20 3d 20 73 72 63 2d |->option|s = src-|
|00005ef0| 3e 6f 70 74 69 6f 6e 73 | 3b 0d 09 72 65 74 75 72 |>options|;..retur|
|00005f00| 6e 20 6b 51 33 53 75 63 | 63 65 73 73 3b 0d 7d 0d |n kQ3Suc|cess;.}.|
|00005f10| 0d 2f 2a 0d 20 2a 20 57 | 33 41 6e 63 68 6f 72 5f |./*. * W|3Anchor_|
|00005f20| 44 65 6c 65 74 65 0d 20 | 2a 2f 0d 73 74 61 74 69 |Delete. |*/.stati|
|00005f30| 63 20 54 51 33 53 74 61 | 74 75 73 20 57 33 41 6e |c TQ3Sta|tus W3An|
|00005f40| 63 68 6f 72 5f 44 65 6c | 65 74 65 28 0d 09 57 33 |chor_Del|ete(..W3|
|00005f50| 41 6e 63 68 6f 72 44 61 | 74 61 09 2a 55 52 4c 44 |AnchorDa|ta.*URLD|
|00005f60| 61 74 61 29 0d 7b 0d 09 | 69 66 20 28 55 52 4c 44 |ata).{..|if (URLD|
|00005f70| 61 74 61 2d 3e 75 72 6c | 20 21 3d 20 4e 55 4c 4c |ata->url| != NULL|
|00005f80| 29 20 0d 09 7b 0d 09 09 | 66 72 65 65 28 55 52 4c |) ..{...|free(URL|
|00005f90| 44 61 74 61 2d 3e 75 72 | 6c 29 3b 0d 09 09 55 52 |Data->ur|l);...UR|
|00005fa0| 4c 44 61 74 61 2d 3e 75 | 72 6c 20 3d 20 4e 55 4c |LData->u|rl = NUL|
|00005fb0| 4c 3b 0d 09 7d 0d 09 69 | 66 20 28 55 52 4c 44 61 |L;..}..i|f (URLDa|
|00005fc0| 74 61 2d 3e 64 65 73 63 | 72 69 70 74 69 6f 6e 20 |ta->desc|ription |
|00005fd0| 21 3d 20 4e 55 4c 4c 29 | 0d 09 7b 0d 09 09 51 33 |!= NULL)|..{...Q3|
|00005fe0| 4f 62 6a 65 63 74 5f 44 | 69 73 70 6f 73 65 28 55 |Object_D|ispose(U|
|00005ff0| 52 4c 44 61 74 61 2d 3e | 64 65 73 63 72 69 70 74 |RLData->|descript|
|00006000| 69 6f 6e 29 3b 0d 09 09 | 55 52 4c 44 61 74 61 2d |ion);...|URLData-|
|00006010| 3e 64 65 73 63 72 69 70 | 74 69 6f 6e 20 3d 20 4e |>descrip|tion = N|
|00006020| 55 4c 4c 3b 0d 09 7d 0d | 0d 09 72 65 74 75 72 6e |ULL;..}.|..return|
|00006030| 20 6b 51 33 53 75 63 63 | 65 73 73 3b 0d 7d 0d 0d | kQ3Succ|ess;.}..|
|00006040| 2f 2a 0d 20 2a 20 57 33 | 41 6e 63 68 6f 72 5f 4d |/*. * W3|Anchor_M|
|00006050| 65 74 61 48 61 6e 64 6c | 65 72 0d 20 2a 2f 0d 73 |etaHandl|er. */.s|
|00006060| 74 61 74 69 63 20 54 51 | 33 46 75 6e 63 74 69 6f |tatic TQ|3Functio|
|00006070| 6e 50 6f 69 6e 74 65 72 | 20 57 33 41 6e 63 68 6f |nPointer| W3Ancho|
|00006080| 72 5f 4d 65 74 61 48 61 | 6e 64 6c 65 72 28 0d 09 |r_MetaHa|ndler(..|
|00006090| 54 51 33 4d 65 74 68 6f | 64 54 79 70 65 09 09 6d |TQ3Metho|dType..m|
|000060a0| 65 74 68 6f 64 54 79 70 | 65 29 0d 7b 0d 09 73 77 |ethodTyp|e).{..sw|
|000060b0| 69 74 63 68 20 28 6d 65 | 74 68 6f 64 54 79 70 65 |itch (me|thodType|
|000060c0| 29 0d 09 7b 0d 09 09 63 | 61 73 65 20 6b 51 33 4d |)..{...c|ase kQ3M|
|000060d0| 65 74 68 6f 64 54 79 70 | 65 4f 62 6a 65 63 74 54 |ethodTyp|eObjectT|
|000060e0| 72 61 76 65 72 73 65 3a | 0d 09 09 09 72 65 74 75 |raverse:|....retu|
|000060f0| 72 6e 20 28 54 51 33 46 | 75 6e 63 74 69 6f 6e 50 |rn (TQ3F|unctionP|
|00006100| 6f 69 6e 74 65 72 29 20 | 57 33 41 6e 63 68 6f 72 |ointer) |W3Anchor|
|00006110| 5f 54 72 61 76 65 72 73 | 65 3b 0d 09 09 63 61 73 |_Travers|e;...cas|
|00006120| 65 20 6b 51 33 4d 65 74 | 68 6f 64 54 79 70 65 4f |e kQ3Met|hodTypeO|
|00006130| 62 6a 65 63 74 57 72 69 | 74 65 3a 0d 09 09 09 72 |bjectWri|te:....r|
|00006140| 65 74 75 72 6e 20 28 54 | 51 33 46 75 6e 63 74 69 |eturn (T|Q3Functi|
|00006150| 6f 6e 50 6f 69 6e 74 65 | 72 29 20 57 33 41 6e 63 |onPointe|r) W3Anc|
|00006160| 68 6f 72 5f 57 72 69 74 | 65 3b 0d 09 09 63 61 73 |hor_Writ|e;...cas|
|00006170| 65 20 6b 51 33 4d 65 74 | 68 6f 64 54 79 70 65 4f |e kQ3Met|hodTypeO|
|00006180| 62 6a 65 63 74 52 65 61 | 64 44 61 74 61 3a 0d 09 |bjectRea|dData:..|
|00006190| 09 09 72 65 74 75 72 6e | 20 28 54 51 33 46 75 6e |..return| (TQ3Fun|
|000061a0| 63 74 69 6f 6e 50 6f 69 | 6e 74 65 72 29 20 57 33 |ctionPoi|nter) W3|
|000061b0| 41 6e 63 68 6f 72 5f 52 | 65 61 64 44 61 74 61 3b |Anchor_R|eadData;|
|000061c0| 0d 09 09 63 61 73 65 20 | 6b 51 33 4d 65 74 68 6f |...case |kQ3Metho|
|000061d0| 64 54 79 70 65 45 6c 65 | 6d 65 6e 74 43 6f 70 79 |dTypeEle|mentCopy|
|000061e0| 41 64 64 3a 0d 09 09 63 | 61 73 65 20 6b 51 33 4d |Add:...c|ase kQ3M|
|000061f0| 65 74 68 6f 64 54 79 70 | 65 45 6c 65 6d 65 6e 74 |ethodTyp|eElement|
|00006200| 43 6f 70 79 47 65 74 3a | 0d 09 09 63 61 73 65 20 |CopyGet:|...case |
|00006210| 6b 51 33 4d 65 74 68 6f | 64 54 79 70 65 45 6c 65 |kQ3Metho|dTypeEle|
|00006220| 6d 65 6e 74 43 6f 70 79 | 44 75 70 6c 69 63 61 74 |mentCopy|Duplicat|
|00006230| 65 3a 0d 09 09 09 72 65 | 74 75 72 6e 20 28 54 51 |e:....re|turn (TQ|
|00006240| 33 46 75 6e 63 74 69 6f | 6e 50 6f 69 6e 74 65 72 |3Functio|nPointer|
|00006250| 29 20 57 33 41 6e 63 68 | 6f 72 5f 43 6f 70 79 41 |) W3Anch|or_CopyA|
|00006260| 64 64 3b 0d 09 09 63 61 | 73 65 20 6b 51 33 4d 65 |dd;...ca|se kQ3Me|
|00006270| 74 68 6f 64 54 79 70 65 | 45 6c 65 6d 65 6e 74 43 |thodType|ElementC|
|00006280| 6f 70 79 52 65 70 6c 61 | 63 65 3a 0d 09 09 09 72 |opyRepla|ce:....r|
|00006290| 65 74 75 72 6e 20 28 54 | 51 33 46 75 6e 63 74 69 |eturn (T|Q3Functi|
|000062a0| 6f 6e 50 6f 69 6e 74 65 | 72 29 20 57 33 41 6e 63 |onPointe|r) W3Anc|
|000062b0| 68 6f 72 5f 43 6f 70 79 | 52 65 70 6c 61 63 65 3b |hor_Copy|Replace;|
|000062c0| 0d 09 09 63 61 73 65 20 | 6b 51 33 4d 65 74 68 6f |...case |kQ3Metho|
|000062d0| 64 54 79 70 65 45 6c 65 | 6d 65 6e 74 44 65 6c 65 |dTypeEle|mentDele|
|000062e0| 74 65 3a 0d 09 09 09 72 | 65 74 75 72 6e 20 28 54 |te:....r|eturn (T|
|000062f0| 51 33 46 75 6e 63 74 69 | 6f 6e 50 6f 69 6e 74 65 |Q3Functi|onPointe|
|00006300| 72 29 20 57 33 41 6e 63 | 68 6f 72 5f 44 65 6c 65 |r) W3Anc|hor_Dele|
|00006310| 74 65 3b 0d 09 09 64 65 | 66 61 75 6c 74 3a 0d 09 |te;...de|fault:..|
|00006320| 09 09 72 65 74 75 72 6e | 20 28 54 51 33 46 75 6e |..return| (TQ3Fun|
|00006330| 63 74 69 6f 6e 50 6f 69 | 6e 74 65 72 29 20 4e 55 |ctionPoi|nter) NU|
|00006340| 4c 4c 3b 0d 09 7d 0d 7d | 0d 0d 2f 2a 0d 20 2a 20 |LL;..}.}|../*. * |
|00006350| 57 33 41 6e 63 68 6f 72 | 5f 52 65 67 69 73 74 65 |W3Anchor|_Registe|
|00006360| 72 0d 20 2a 2f 0d 54 51 | 33 53 74 61 74 75 73 20 |r. */.TQ|3Status |
|00006370| 57 33 41 6e 63 68 6f 72 | 5f 52 65 67 69 73 74 65 |W3Anchor|_Registe|
|00006380| 72 28 0d 09 76 6f 69 64 | 29 0d 7b 0d 09 67 57 33 |r(..void|).{..gW3|
|00006390| 41 6e 63 68 6f 72 43 6c | 61 73 73 20 3d 20 0d 09 |AnchorCl|ass = ..|
|000063a0| 09 51 33 45 6c 65 6d 65 | 6e 74 43 6c 61 73 73 5f |.Q3Eleme|ntClass_|
|000063b0| 52 65 67 69 73 74 65 72 | 28 0d 09 09 09 6b 45 6c |Register|(....kEl|
|000063c0| 65 6d 65 6e 74 54 79 70 | 65 57 33 41 6e 63 68 6f |ementTyp|eW3Ancho|
|000063d0| 72 2c 0d 09 09 09 22 57 | 33 41 6e 63 68 6f 72 22 |r,...."W|3Anchor"|
|000063e0| 2c 0d 09 09 09 73 69 7a | 65 6f 66 28 57 33 41 6e |,....siz|eof(W3An|
|000063f0| 63 68 6f 72 44 61 74 61 | 29 2c 0d 09 09 09 57 33 |chorData|),....W3|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.